您可以使用两种尚未提及的解决方案:主题分支 or use 采摘樱桃.
主题分支解决方案
In the 主题分支解决方案,你切换到分支“某事”,创建一个分支来修复错误例如'something-bugfix',将此分支合并到'something'(修复错误),然后将此分支合并到'experimental'。
$ git checkout -b something-fix something
[edit, commit]
$ git checkout something
$ git merge something-fix
$ git checkout experimental
$ git merge something-fix
[fix conflicts if necessary and commit]
也可以看看尽早解决主题分支之间的冲突/依赖关系 http://gitster.livejournal.com/27297.html and 永远不会合并回去 http://gitster.livejournal.com/26540.html,也许还有致力于不同的分支 http://gitster.livejournal.com/25892.htmlJunio C Hamano(git 维护者)的博客文章。
精挑细选错误修复
The 采摘樱桃如果您注意到,解决方案很有用later您创建的错误修复(例如在开发分支上)在其他分支(例如稳定分支)上也很有用。在您的情况下,您将在“某事”分支上进行修复:
$ git checkout something
[edit, edit, edit]
$ git commit
$ git checkout experimental
然后您注意到您在“something”分支中提交的修复也应该在“experimenta”分支上。假设这个错误修复是提交“A”(例如,如果您没有在“某事”之上提交任何内容,则为“某事”,但它可能是“某事〜2”或“c84fb911”):
$ git checkout experimental
$ git cherry-pick A
(您可以使用--edit
选项git 樱桃挑选 http://www.kernel.org/pub/software/scm/git/docs/git-cherry-pick.html如果您想在提交精心挑选的错误修复之前编辑提交消息)。