我是在Windows上。
由于种种原因,我们有不同的svn分支的多个混帐实例。
很多时候,我想修复存储库中的一个问题,生成一个补丁,并将其应用到存储库B.这工作得很好,除非有冲突。
当重订我只是右键单击文件夹并使用tortioseGit并选择resolve选项。 这带来了一个很好的图形界面,让我通过我的工作发生冲突。
有没有什么办法与拒绝的补丁块做到这一点?
这是我目前的方法来创建/应用补丁
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(重用记录分辨率)的功能。 这使您可以预先定义如何冲突应该根据您过去解决他们来解决。 见http://git-scm.com/blog/2010/03/08/rerere.html的是如何工作的细节。
TortoiseGit有一个合并功能,可以打开补丁文件。
有它的照片在这里 。