Как объединить только удаленные изменения в vimdiff? - PullRequest
0 голосов
/ 03 мая 2018

После разветвления репозитория Github я внес в него некоторые изменения. Это было довольно давно, сейчас ветка вверх по течению значительно опережает. Таким образом, я хотел объединить эти удаленные изменения с моим раздвоенным репо.

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

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

  • Есть ли ярлык на :diffget RE для всех конфликтов в этом файле?
  • Может быть, есть способ выбрать только ветку diff при отбрасывании другой в git?

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Используя глобальный выбор Vims, вы можете заменить все различия на LOCAL, BASE или REMOTE

  1. Перейти к первой строке в файле
:1
  1. Перейти в визуальный режим
 <Shift>-V
  1. Перейти в конец файла и выделить все строки
G
  1. Выполнить команду diffget во всех строках
:diffget REMOTE
0 голосов
/ 06 мая 2018

Слияние в git имеет две опции, которые могут по умолчанию использовать удаленные изменения (их) или локальные изменения (наши).

Если вы хотите разрешить конфликты только с удаленными изменениями в слиянии, вы должны сделать следующее:

git merge -Xtheirs <branch>

Если вы хотите разрешить конфликты только с локальными изменениями в слиянии, вы должны сделать следующее:

git merge -Xours <branch>

Более подробную информацию о стратегиях слияния можно найти в документации по git advanced слияние .

...