від https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging
Це в основному зробить фальшиве злиття. Він запише нову комісію злиття з обома гілками як батьки, але навіть не буде дивитись на гілку, в яку ви зливаєтеся. Він просто запише в результаті об'єднання точного коду у вашій поточній гілці.
$ git merge -s ours mundo
Об’єднання, здійснене за допомогою нашої стратегії.
$ git diff HEAD HEAD~
Видно, що різниці між галуззю, на якій ми були, та результатом злиття немає.
Це часто може бути корисним для того, щоб в основному обдурити Git думати, що гілка вже об'єднана при злитті пізніше. Наприклад, скажіть, що ви розгалужили гілку випуску і виконали певну роботу над нею, яку ви хочете в якийсь момент об'єднати назад у свою головну гілку. Тим часом деяку помилку на програмі master потрібно підтримати у відділенні релізу. Ви можете об'єднати гілку помилок у гілку випуску, а також об'єднати -як наша ж гілка у вашу головну гілку (навіть якщо виправлення вже є), тож коли ви згодом знову з’єднаєте гілку випуску, конфлікту з виправленням не буде.
Ситуація, яку я вважаю корисною, якщо хочу, щоб майстер відображав зміни нової галузі теми. Я помітив, що -Xtheirs не зливаються без конфліктів за певних обставин ... наприклад
$ git merge -Xtheirs topicFoo
CONFLICT (modify/delete): js/search.js deleted in HEAD and modified in topicFoo. Version topicFoo of js/search.js left in tree.
У цьому випадку рішення, яке я знайшов, було
$ git checkout topicFoo
від topicFoo, спочатку об'єднавшись у master за допомогою нашої стратегії, це створить фальшивий фіксатор, який є лише станом topicFoo. $ git merge - наш господар
перевірте створене об'єднання об'єднань
$ git log
тепер оформити головну гілку
$ git checkout master
об'єднайте гілку теми назад, але на цей раз використовуйте рекурсивну стратегію -Xtheirs, тепер це представить вам головну гілку зі станом topicFoo.
$ git merge -X theirs topicFoo