有没有一种简单的方式来处理git操作中的二进制文件?我想在这种情况下,我的理想是“合并” .mo文件(二进制 .po消息),将优先权赋予较新的文件,将其复制到旧文件的顶部。因此,我是否可以配置git来执行此操作,还是它总是需要手动进行?
*.mo
文件,并且仅适用于相关目录。请注意保留HTML标记。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
最好的做法是不要将生成的文件(例如.mo文件)纳入版本控制。
如果您仍希望将它们放在Git中,请使用标准方法解决冲突。
例如,您可以获取冲突文件的任一版本:
git checkout --theirs -- dir/file.mo
git checkout --ours -- dir/file.mo
或者使用 git mergetool
,它将为您提供冲突文件的两个版本。
基本上这个概念在这里得到了很好的解释 如何告诉git始终选择我的本地版本来解决特定文件的合并冲突?
这里有一个简化了上述步骤的bash脚本 https://github.com/equivalent/git_to_svn_behavior-
(在Readme中有运行步骤)