#отменить неудачное слияние
git merge --abort
# повторить слияние используя опцию theirs
git merge -Xtheirs branch_b
# при конфликтах выберется вариант из вливаемой ветки
Но это не точно. Я вечно путаю ours и theirs )) Советую почитать в нашей книжке про
типы слияний
По умолчанию, когда Git при слиянии веток замечает конфликт, он добавляет в код маркеры конфликта, отмечает файл как конфликтующий и позволяет вам разрешить его. Если же вместо ручного разрешения конфликта вы хотите, чтобы Git просто использовал какую-то определённую версию файла, а другую игнорировал, то вы можете передать команде merge одну из двух опций -Xours
или -Xtheirs
.
В этом случае Git не будет добавлять маркеры конфликта. Все неконфликтующие изменения он сольёт, а для конфликтующих он целиком возьмёт ту версию, которую вы указали (это относится и к бинарным файлам).
возиться с уголками лень
Всем лень. Поэтому используют merge tools которые помогают разбираться с «уголками» в один клик.
Либо сразу во всём файле выбрать какой-то один вариант и разрешить конфликты в пользу одной стороны.
Если хочется сделать это именно из командной строки, то делается это так.
git checkout branch_b -- имя_файла # оставить версию файла из ветки branch_b
git add имя_файла # сбросить состояние конфликта
# ... разрешить другие конфликты
git merge --continue --no-edit # создать коммит слияния