3

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

那么我可以配置 git 来执行此操作,还是总是需要手动操作?

4

3 回答 3

3

您可以在gitattributes 文件中添加自定义合并驱动程序(请参阅此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
于 2010-03-09T12:25:07.560 回答
0

最好的办法是不要将生成的文件(例如 .mo 文件)置于版本控制之下。

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

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

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

或使用git mergetoolwhich 将为您提供两个版本的冲突文件。

于 2010-03-09T12:12:22.777 回答
0

基本上这个概念在这里很好地解释了如何告诉 git 始终选择我的本地版本以在特定文件上进行冲突合并?

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

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

于 2011-08-24T17:33:43.643 回答