Скажите git не объединять двоичные файлы, а выбирать

Когда двоичные файлы, swfs, jar и flv изменяются локально, и я пытаюсь внести изменения, git пытается объединить их и сообщает о конфликте.

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

Есть ли способ указать git, чтобы не пытаться объединить двоичные файлы, и спросить меня, какую из этих версий использовать.


person lprsd    schedule 27.05.2010    source источник


Ответы (1)


Вы можете настроить диск слияния в .gitattributes файле (только для данного поддерева, только для некоторых типов файлов)

См., Например, этот вопрос (или этот).

# choose the name of the merge driver to be use for all jar files
echo *.jar merge=keepTheir > dirWithJarFiles\.gitattributes

Объявите свой драйвер слияния в конфигурации репозитория Git:

git config merge.keepTheir.name "always keep their during merge"
git config merge.keepTheir.driver "keepTheir.sh %O %A %B"

or

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

Пример, который я привожу, не требует от вас выбора, но всегда будет сохранять «мою» (или «вашу») версию при слиянии.
Но вы можете адаптировать скрипт, выполняемый этим драйвером слияния, чтобы задать вам вопрос, и затем примените свой выбор ко всем слияниям.

person VonC    schedule 27.05.2010