我刚刚阅读http://www.draconianoverlord.com/2013/09/07/no-cherry-picking.html,似乎svn:mergeinfo
可以跟踪有关单个提交合并的信息,这些信息发生在挑选樱桃时。
当您将功能分支与挑选出来的错误修复程序合并到原始分支(之前您已经修复了错误)时,可以避免合并冲突。
这里有趣的ASCII艺术(人们喜欢SO):
o--o--o--o--o feature
^ ^ \
/ / v
-o--o--o--X--o---o---Y--o--> dev
此处X
- 仅限单个变更集(我们从dev
移至feature
分支的基本/阻止程序修复程序。)
我尝试在Git
合并中发现Y
存在冲突,如果您已经修改了受修复X
影响的行。虽然SVN
只是从合并中跳过该变更集。
更新这导致DAG VCS用户使用bisect
和来自bisect和分支的共同祖先进行修复传播。所以你可以创造干净的历史。
答案 0 :(得分:2)
您可能需要read up on rerere
,这是“重复记录的分辨率”的缩写。 Git可以记住你过去如何解决冲突并在以后重用这些决议,但你必须启用该功能。
git config rerere.enabled true
将在您的存储库中启用此功能(如果您希望在此计算机上默认为此用户启用此功能,请使用--global
。)