我有两个分支位于上游/主控之上。一个分支以另一个为祖先,因此它们形成一条线。
U1 (upstream/master)
\
A -- B (fixes)
\
C -- D (features)
随后,upstream/master 继续前进......
U1 -- U2 (upstream/master)
\
A -- B (fixes)
\
C -- D (features)
...我想将两个分支重新建立在顶部。
U1 -- U2 (upstream/master)
\
A' -- B' (fixes)
\
C' -- D' (features)
我知道两种方法,每种方法都有缺点。
git rebase upstream/master fixes
git rebase fixes features
这两个命令有时有效,有时会在第二个命令上产生合并冲突。
git rebase upstream/master features
# figure out the hash code of the new commit corresponding with B'
git branch -f fixes <sha of B'>
这仅涉及一次变基,但移动分支非常繁琐且容易出错。
我研究了 rebase --preserve-merges,但这似乎不适用,因为没有合并提交。
有没有更好的方法来完成变基?
避免合并冲突的一种方法是将分支从预变基历史记录移至后变基历史记录。这无疑是可怕的,因为它需要找出每个提交的新版本,但可能比不必要的合并更快。
eg.
git rebase 上游/主功能
U1 -- U2 (upstream/master)
\
A' -- B'
\
C' -- D' (features)
gitbranch-ffixes(SHAforB')#更改分支指向的位置。
U1 -- U2 (upstream/master)
\
A' -- B' (fixes)
\
C' -- D' (features)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)