Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何处理二进制文件的gitting,例如.mo文件_Git_Binary_Mo - Fatal编程技术网

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

如何处理二进制文件的gitting,例如.mo文件,git,binary,mo,Git,Binary,Mo,在git操作中有没有处理二进制文件的简单方法?我认为,在这种情况下,我的理想是,.mo文件(二进制.po消息)的“合并”将优先于较新的文件,将其复制到较旧的文件之上 那么,我可以配置git来实现这一点吗?还是它总是需要手动操作 最好不要将生成的文件(如.mo文件)置于版本控制之下 如果您仍然希望在Git中使用它们,请使用标准方法解决冲突 例如,您可以获取冲突文件的任一版本: git checkout --theirs -- dir/file.mo git checkout --ours -- d

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


那么,我可以配置git来实现这一点吗?还是它总是需要手动操作

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

如果您仍然希望在Git中使用它们,请使用标准方法解决冲突

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

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

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

您可以在中添加一个自定义合并驱动程序(参见此),仅用于
*.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"
使用
将其.sh保留为:

mv -f $3 $2
exit 0

基本上,这个概念在这里得到了很好的解释

下面是一个bash脚本,它简化了这里描述的步骤


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

这并不是我想要的——每天早上我都会将我的更改与同事的更改合并。如果他添加了或(重新)定义了消息,我希望在不必在本地重新生成mo文件的情况下提取它们。当然,如果我们都改变了信息,那么我就必须再生,但这种情况和日食一样频繁。我想要的是git在不提问的情况下复制最新的文件,这是一种ignore指令,它盲目地复制而不是忽略。但是如果只有一个更改了消息,应该不会有任何冲突。这看起来是一种有趣的可能性。等我做完我现在做的事情后,我会调查的。