Когда кто-то вышел из вишни из моих коммитов GIT и совершил свои собственные коммиты, как мне слиться?

StackOverflow https://stackoverflow.com/questions/4465710

Вопрос

Предположим, что я разжигаю чей-то git Repo и делаю Commits A, B, C и D. The Persom, которого я разбил от того, что вишневые а и C, которые, следовательно, становятся 'и C'. Он также делает коммиты X, Y и z собственными. Итак, после всего этого, у моего филиала ABCD, и у него есть 'c' xy Z. Предположим, что обе ветви опубликованы, поэтому Refase не является привлекательным вариантом. Также предположим, что XYZ не конфликтует ни с одним из ABC D. Как мне слияние этих двух ветвей полезным образом? Должен ли я просто объединиться, а затем все разрешить все? Есть ли что -нибудь, что я могу сделать с дублирующими сообщениями коммит в журнале объединенной головы? Обречены ли эти две ветви на синхронизацию, только с этого момента выбирая вишню друг друга?

Это было полезно?

Решение

Прямое слияние должно работать. GIT должен заметить идентичные наборы изменений и не попытаться объединить A/A 'или C/C'. Если x, y или z коснулись того же кода, что и «/c», вам, возможно, придется разрешить конфликты там, особенно если B или D затронули тот же код.

Вы всегда можете git merge --no-commit и осмотрите результат, чтобы увидеть, есть ли это то, что вы ожидали.

Другие советы

В случае, если нет конфликтов, прямое слияние очевидно. Если есть конфликты, хотя ...

Во-первых, вы можете объединить его C ', любые конфликты на этом этапе связаны с повторным применением ваших собственных изменений, если они нетривиальны или потому что они применяются немного вне порядок. Может случиться, если ваш C нарастает на B, а его C 'не был чистой копией, или если кто-либо из BCD накапливается на таком повторном применении его A' больше не является очевидным, нето, и т. Д., И т. Д.

Вы можете пропустить подробное расследование конфликта и просто принять свою версию, вручную или:

git merge --strategy=ours C'

Затем объедините остальное, уделяя там больше внимания конфликтам. Если его XYZ действительно не касается ABCD, это должно быть без конфликтов. Если он сделал что -то странное или неправильное во время слияния C как C ', и вы отбросили это при слиянии C', он может вернуться и укусить вас здесь или в любое время в будущем.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top