如何处理二进制文件的gitting,例如.mo文件

时间:2010-03-09 11:55:20

标签: git binary mo

有没有一种简单的方法来处理git操作中的二进制文件?我认为我在这种情况下的理想 - “合并”.mo文件(二进制.po消息) - 将优先于较新的文件,将其复制到旧文件的顶部。

我可以配置git来执行此操作,还是始终是手动练习?

3 个答案:

答案 0 :(得分:3)

您可以在gitattributes file中添加自定义合并驱动程序(请参阅此SO question),仅针对*.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

答案 1 :(得分:0)

最好的想法是不要将生成的文件(例如.mo文件)保留在版本控制之下。

如果您仍想在Git中使用它们,请使用标准方法来解决冲突。

例如,您可以获得任一版本的冲突文件:

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

或者使用git mergetool,它将为您提供两种版本的冲突文件。

答案 2 :(得分:0)

基本上这个概念很好地解释了How do I tell git to always select my local version for conflicted merges on a specific file?

这里是一个bash脚本,简化了那里描述的步骤 https://github.com/equivalent/git_to_svn_behavior-

(步骤如何在自述文件中运行)