Хитрость в том, способ, которым git решает слияния :
- всегда основанный на трехсторонних слияниях (поскольку граф коммитов позволяет получить общего предка оченьлегко)
- всегда незаметно, за исключением конфликта (когда вам помогает процесс)
Так что даже если вы определите драйвер слияния , он не будетвключите, если не возникнет какой-либо конфликт.
Первая попытка - определить атрибут объединения Unset
Unset
Возьмите версию из текущей ветви как предварительный результат слияния, и объявите, что слияние имеет конфликты .Это подходит для двоичных файлов, которые не имеют четко определенной семантики слияния.
Вы должны написать в .gitattributes
file
* -merge
, и посмотреть, если этодостаточно для запуска mergetool на всех объединенных файлах.
Одна из причин, по которой эта функция "unset" не является опцией git merge
, заключается в том, что:
Попытка сброса трехстороннего слияния на уровне файлов не является частью этого процесса слияния (что опять же является причиной на уровне дерева).
Таким образом, он больше подходит в качестве атрибута, который можно установить дляопределенный набор файлов.