Примите все конфликты слияния в мерзавце

Я пытаюсь сделать слияние и существует набор конфликтов. Это все генерировало файлы поэтому, что я хочу сделать, в основном говорят, "игнорируют все конфликты слияния и регистрируют все от моего собственного repo".

Я попробовал

git checkout . --ours
git add -A
git com -a

Это дает мне ошибку хотя, потому что существуют все еще файлы в "необъединенных путях" блок. Как я обрабатываю это?

Спасибо!

5
задан Micah 12 May 2010 в 20:06
поделиться

2 ответа

Используйте настраиваемый драйвер слияния :
вы можете объявить этот драйвер в .gitattributes , расположенном в правом каталоге (тот, где находятся сгенерированные файлы чье слияние вы не хотите иметь дело)

* merge=keepMine

(вы можете указать более точный шаблон, чтобы изолировать точные файлы, связанные с этим настраиваемым слиянием)

с конфигурацией:

[merge "keepMine"]
        name = always keep mine during merge
        driver = keepMine.sh %O %A %B

См. " Как мне скажите git всегда выбирать мою локальную версию для конфликтующих слияний в определенном файле? "для полного примера.

4
ответ дан 13 December 2019 в 19:23
поделиться

Команды Git очень настороженно относятся к скрытию конфликтов - вам практически необходимо явно проверить конфликтующий файл, чтобы дать ему знать, что он исправлен. Кажется странным, что для git add нет опции -f, чтобы дать ему понять, что вы действительно это имеете в виду, но вот псевдоним, который у меня есть, который поможет:

add-unmerged = \
    "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; git add `f`"

Бонусный совет: если вы измените "git add" на $EDITOR, у вас теперь есть edit-unmerged, для редактирования всех конфликтующих файлов!

7
ответ дан 13 December 2019 в 19:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: