假设我们有以下修订图:
A-B (master)
\
C (feature-a)
\
D (feature-b) [depends on feature a]
\
E (feature-c) [depends on feature b]
然后修改 master 以跟随 commit F
。是否有任何简单的方法可以重新定位E
到F
(master) 上,以便分支feature-a
,feature-b
最终feature-c
结果如下:
A-B-F (master)
\
C' (feature-a)
\
D' (feature-b)
\
E' (feature-c)
?
在现实世界的情况下,每个特性之间显然有多个补丁,因此手动重新连接中间的分支以重新设置历史记录是乏味且容易出错的工作。我知道我可以用一个简单的方式变基E
,但这会留下分支并指向提交,而不是and 。Rebase 应该拥有移动所有分支的所有信息,对吧?E'
git checkout feature-c && git rebase master
feature-a
feature-b
C
D
C'
D'