Всегда используйте версию из объединенной ветви при конфликтах - PullRequest
9 голосов
/ 28 мая 2011

В настоящее время я работаю в ветке функций, которая вскоре будет объединена с мастером. Я недавно попробовал именно это, и у меня возникли конфликты слияния, которые мне пришлось исправить вручную.

Итак, можно ли сказать git всегда использовать версию из объединенной ветви, чтобы заранее избежать конфликтов объединения? В этом случае я исправил конфликты вручную, но всегда выбирал версию из объединенной ветви, так что это избавило бы меня от утомительной работы.

Ответы [ 2 ]

17 голосов
/ 28 мая 2011

Вы можете сделать это в git с помощью следующей команды, предполагая, что feature - это имя вашей ветви функций:

git merge -s recursive -X theirs feature

Это говорит об использовании "рекурсивной" стратегии слияния, но с«их» вариант.Это означает, что при возникновении конфликта он будет автоматически разрешен путем извлечения версии блока из ветви компонентов, а не из вашей текущей ветви.(Обратите внимание, что это полностью отличается от «их» стратегии слияния, которая теперь удалена из git.)

Эта функция была представлена ​​в git v1.7.0.

0 голосов
/ 28 мая 2011

Вы не можете использовать рекурсивную "нашу" стратегию. Это исключит ваши изменения, которые не конфликтуют.

Вы можете написать скрипт для получения имен конфликтующих файлов и выполнить git checkout --ours - filename, а затем git add filename.

Если вы получаете одни и те же конфликты снова и снова, включите rerere, и этого может быть достаточно, чтобы вам не пришлось разрешать конфликты.

Надеюсь, это поможет.

...