在我的日常git工作流中,我有许多主题分支,如下所示:
o--o--o (t2) / o--o (t1) / o--o--o (master) \ o--o--o (t3)
当我从上游拉取代码时,
o--o--o (t2) / o--o (t1) / o--o--o--n--n--n (master) \ o--o--o (t3)
我想要将所有的主题分支变基(rebase)到新的主分支上:
o'--o'--o' (t2) / o'--o' (t1) / o--o--o--n--n--n (master) \ o'--o'--o' (t3)
目前我通过手动使用git rebase --onto
来实现这一点。在这种情况下,整个更新过程如下:
$ git checkout master
$ git pull
$ git rebase master t1
$ git rebase --onto t1 t2~3 t2
$ git rebase master t3
当在各个主题分支之间跳转并添加提交时,情况变得更加复杂。
在我的情况下,主题分支之间的依赖关系纯粹是树形结构:没有分支依赖于超过一个其他分支。(我必须按照特定顺序最终上游依赖的修补程序,因此我事先选择该顺序。)
是否有任何工具可以帮助我管理这个工作流程?我见过TopGit,但似乎它与基于电子邮件的tg patch
工作流密切相关,这对我不相关。
t2
重新基于master
,而不是像图表中展示的那样将其基于t1
?同样地,对于t3
,--onto
标志也不适用。 - Lily Ballard