我在Windows上。
由于各种原因,我们有不同 svn 分支的多个 git 实例。
很多时候我想修复存储库 A 中的问题,生成补丁,然后将其应用到存储库 B。除非存在冲突,否则这工作正常。
变基时,我只需右键单击该文件夹并使用 tortioseGit 并选择解析选项。这会弹出一个很好的图形用户界面来让我解决冲突。
有什么方法可以通过拒绝的补丁块来完成此操作吗?
这是我当前创建/应用补丁的方法
git format-patch master --stdout > c:\\patch\\file.patch
git apply --reject --ignore-space-change --ignore-whitespace c:\\patch\\file.patch
要生成补丁,请执行以下操作:
git format-patch --stdout first_commit^..last_commit > changes.patch
现在,当您准备好应用补丁时:
git am -3 < changes.patch
如果存在冲突,-3
将进行三向合并。此时,如果您想转到 GUI 或只是使用 vim 手动合并文件,则可以执行
git mergetool
(标准
<<<<<<
、
||||||
、
>>>>>>
冲突解决)。
git apply -3 <patch_name>
它将帮助您解决冲突
http://git-scm.com/blog/2010/03/08/rerere.html 了解其工作原理的详细信息。
有一张它的图片
这里。