我的my_branch中有一个二进制文件,当我需要对其进行更改时,git当然不会合并它。
所以我现在做的是:
git checkout my_branch
# make a change to gui.bin
mv gui.bin ~/
git commit -a
mv ~/gui.bin .
git commit -a
# git rebase to 1 commit
git checkout master
git merge my_branch
但有没有更简单的方法呢?
我不太确定你的测试用例的目的是什么。您似乎正在将 gui.bin 移开,然后将其放回原样......
通常,二进制文件不需要合并,您只想从一个地方或另一个地方选择一个最终版本。在真正需要合并它们的地方,您要么需要自定义合并工具,要么使用某种编辑器和大量手动干预。
我注意到你使用commit -a
在你的例子中。避免不必要的冲突的第一步是不要提交任何可能被偶然触及的二进制文件,除非您想提交它们。如果你只是git add
您需要提交的文件和没有提交的文件-a
那么这会有帮助。或者,如果只有一个文件您不想提交,您可以add -u
并在提交之前重置它。
git add -u
git reset -- dontcommit.dat
git commit
当您合并同时更改了二进制文件的分支时,您可能希望保留一个版本而不是另一个版本。合并后,git告诉你它们在你的二进制文件中存在冲突,你可以告诉git使用你所在分支中的版本,如下所示:
git checkout --ours binary.dat
git add binary.dat
或者来自您要合并的分支,如下所示:
git checkout --theirs binary.dat
git add binary.dat
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)