Я пытаюсь сделать слияние и существует набор конфликтов. Это все генерировало файлы поэтому, что я хочу сделать, в основном говорят, "игнорируют все конфликты слияния и регистрируют все от моего собственного repo".
Я попробовал
git checkout . --ours
git add -A
git com -a
Это дает мне ошибку хотя, потому что существуют все еще файлы в "необъединенных путях" блок. Как я обрабатываю это?
Спасибо!
Используйте настраиваемый драйвер слияния :
вы можете объявить этот драйвер в .gitattributes
, расположенном в правом каталоге (тот, где находятся сгенерированные файлы чье слияние вы не хотите иметь дело)
* merge=keepMine
(вы можете указать более точный шаблон, чтобы изолировать точные файлы, связанные с этим настраиваемым слиянием)
с конфигурацией:
[merge "keepMine"]
name = always keep mine during merge
driver = keepMine.sh %O %A %B
См. " Как мне скажите git всегда выбирать мою локальную версию для конфликтующих слияний в определенном файле? "для полного примера.
Команды Git очень настороженно относятся к скрытию конфликтов - вам практически необходимо явно проверить конфликтующий файл, чтобы дать ему знать, что он исправлен. Кажется странным, что для git add
нет опции -f
, чтобы дать ему понять, что вы действительно это имеете в виду, но вот псевдоним, который у меня есть, который поможет:
add-unmerged = \
"!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; git add `f`"
Бонусный совет: если вы измените "git add" на $EDITOR, у вас теперь есть edit-unmerged
, для редактирования всех конфликтующих файлов!