当二进制文件,swfs,jar和flv在本地更改,并且我尝试引入更改时,git会尝试合并它们并报告冲突。
然后,我转移到一个临时分支,并提交本地更改的二进制文件,并在拉动之后将它们合并为递归策略。 - 工作太多了。
有没有办法告诉git,不要尝试合并二进制文件,并问我使用哪个版本。
答案 0 :(得分:7)
您可以在.gitattributes
文件中设置合并驱动器(仅适用于给定的子树,仅适用于某些文件类型)
例如,请参阅this question(或this one)。
# choose the name of the merge driver to be use for all jar files
echo *.jar merge=keepTheir > dirWithJarFiles\.gitattributes
在Git repo的配置中声明你的合并驱动程序:
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
我给出的示例不要求您选择,但在合并时将始终保留“我的”(或“您的”)版本。
但是你可以调整这个合并驱动程序执行的脚本来问你一个问题,然后将你的选择应用于所有合并。