告诉Git不要合并二进制文件,而是选择一个版本

8
当本地二进制文件、swf、jar和flv被更改时,尝试拉取更改时,git会尝试合并它们并报告冲突。
然后,我将分支到一个临时分支,并提交本地更改的二进制文件,在拉取后使用递归theirs策略进行合并。-- 太麻烦了。
有没有一种方法告诉git不要尝试合并二进制文件,并询问我要使用哪个版本。
1个回答

8
您可以在.gitattributes文件中设置合并驱动程序(仅适用于给定子树,仅适用于某些文件类型)。
例如,请参见此问题(或此问题)。
# choose the name of the merge driver to be use for all jar files
echo *.jar merge=keepTheir > dirWithJarFiles\.gitattributes

在Git仓库的配置文件中声明您的合并驱动程序:

git config merge.keepTheir.name "always keep their during merge"
git config merge.keepTheir.driver "keepTheir.sh %O %A %B"

或者
git config merge.keepMine.name "always keep mine during merge"
git config merge.keepMine.driver "keepMine.sh %O %A %B"
[merge "keepMine"]
        name = always keep mine during merge
        driver = keepMine.sh %O %A %B

我给出的示例不会要求你做出选择,而是在合并时始终保留“我的”(或“你的”)版本。
但你可以调整此合并驱动程序执行的脚本以询问你一个问题,然后将你的选择应用于所有合并。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接