Узнайте, как решить эту проблему здесь https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/resolving-a-merge-conflict-using-the-command-line
ИЛИ
Попробуйте: git mergetool
Это открывает графический интерфейс, который шаг за шагом проходит через каждый конфликт, и вы получаетевыбрать, как слить. Иногда это требует небольшого ручного редактирования впоследствии, но обычно этого достаточно само по себе. Конечно, это намного лучше, чем делать все вручную.
Команда не обязательно открывает графический интерфейс, если вы его не установите. Запуск git mergetool
для меня привел к использованию vimdiff
. Вместо этого вы можете установить один из следующих инструментов: meld
, opendiff
, kdiff3
, tkdiff
, xxdiff
, tortoisemerge
, gvimdiff
, diffuse
, ecmerge
, p4merge
, araxis
, vimdiff
, emerge
.
Ниже приведен пример процедуры использования vimdiff
для разрешения конфликтов слияния. На основании этой ссылки
Шаг 1 : Выполните следующие команды на вашем терминале
git config merge.tool vimdiff
git config merge.conflictstyle diff3
git config mergetool.prompt false
Это установит vimdiff в качестве инструмента слияния по умолчанию.
Шаг 2 : Выполнить следующую команду в терминале
git mergetool
Шаг 3 : Вы увидите дисплей vimdiff в следующем формате
╔═══════╦══════╦════════╗
║ ║ ║ ║
║ LOCAL ║ BASE ║ REMOTE ║
║ ║ ║ ║
╠═══════╩══════╩════════╣
║ ║
║ MERGED ║
║ ║
╚═══════════════════════╝
Эти 4 вида:
LOCAL - это файл из текущей ветви
BASE - общий предок, как файл выглядел до того, как оба изменения
REMOTE - файл, который вы объединяете с вашей веткой
MERGED - результат слияния, это то, что сохраняется в репо
Вы можете перемещаться между этими представлениями, используя ctrl + ш . Вы можете напрямую перейти к представлению MERGED, используя ctrl + w , а затем j .
Подробнее о навигации vimdiff здесь и здесь
Шаг 4 . Вы можете редактировать MERGED-представление следующим образом
Если вы хотите получить изменения из REMOTE
:diffg RE
Если вы хотите получить изменения из BASE
:diffg BA
ЕслиВы хотите получить изменения от LOCAL
:diffg LO
Шаг 5 . Сохранить, выйти, зафиксировать и очистить
:wqa
сохранить и выйти из vi
git commit -m "message"
git clean
Удалить созданные дополнительные файлы (например, * .orig)с помощью инструмента сравнения.