Скажите git не объединять двоичные файлы, а выбирать - PullRequest
7 голосов
/ 27 мая 2010

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

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

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

1 Ответ

7 голосов
/ 27 мая 2010

Вы можете настроить диск слияния в файле .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"

или

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

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

...