как обрабатывать сборку двоичных файлов, например, .mo файлы - PullRequest
3 голосов
/ 09 марта 2010

Есть ли простой способ обработки двоичных файлов в операциях git? Я думаю, что мой идеал в этом случае - «объединение» файлов .mo (двоичные сообщения .po) - отдавать приоритет более новому файлу, копируя его поверх старого.

Так можно ли настроить git для этого или это всегда будет ручное упражнение?

Ответы [ 3 ]

3 голосов
/ 09 марта 2010

Вы можете добавить пользовательский драйвер слияния в файл gitattributes (см. Этот SO вопрос ), только для файлов *.mo и только всоответствующие каталоги.

echo *.mo merge=keepTheir > dirWithMoFiles\.gitattributes
git config merge.keepTheir.name "always keep theirduring merge"
git config merge.keepTheir.driver "keepTheir.sh %O %A %B"

С keepTheir.sh как:

mv -f $3 $2
exit 0
0 голосов
/ 24 августа 2011

в основном, это понятие было хорошо объяснено здесь Как мне сказать git всегда выбирать мою локальную версию для конфликтующих слияний в конкретном файле?

и вот скрипт bash, упрощающий шагитам описано https://github.com/equivalent/git_to_svn_behavior-

(пошаговое руководство по запуску в Readme)

0 голосов
/ 09 марта 2010

Что ж, лучшая идея - не держать сгенерированные файлы (например, .mo файлы) под контролем версий.

Если вы все еще хотите, чтобы они были в Git, используйте стандартные способы разрешения конфликтов.

Например, вы можете получить любую версию конфликтующего файла:

git checkout --theirs -- dir/file.mo
git checkout --ours -- dir/file.mo

Или используйте git mergetool, который предоставит вам обе версии конфликтующего файла.

...