在应用补丁时有什么办法来解决冲突?

我在窗户上。

由于各种原因,我们有不同的svn分支的多个git实例。

很多时候,我想修复存储库A中的一个问题,生成一个补丁,并将其应用到存储库B.这工作正常,除非有冲突。

当重新绑定时,我只需右键单击该文件夹并使用tortioseGit并select解决选项。 这带来了一个很好的gui让我通过我的冲突工作。

有没有办法用拒绝的补丁块来完成这个任务?

这是我目前创build/应用补丁的方法

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将进行三方合并。 在这一点上,你可以做一个git mergetool如果你想去一个GUI或手动合并文件使用vim(标准的<<<<<<

>>>>>>冲突解决)。

如果在应用补丁,重新绑定或合并时经常遇到相同的冲突集,则可以使用git rerere(重用logging分辨率)函数。 这使您可以根据您过去如何解决冲突,预先定义如何解决冲突。 请参阅http://git-scm.com/blog/2010/03/08/rerere.html以了解详细信息。;

Tortoise Git有一个合并function,可以打开补丁文件。

这里有一张照片。

我的做法是:

  • 创build一个“集成” – 分支文件是相同的
  • 将此补丁应用于此Integration-Branch
  • 合并或重新devise它来掌握(不知道是否rebase在这里是有用的,因为我不知道当应用更多的补丁时会发生什么)