Git允许您使用git rebase -interactive
编辑分支的历史记录。您可以编辑一些提交,这也值得为其他分支更新。你如何更新另一个分支?
例如,我有两个分支A = Root <- A1 <- A2 <-A3
和B = Root <- B2 <- B3
。现在,我首先以交互方式编辑,更新Root => Root1
。如何将分支B重新绑定到Root1而不是Root
,如何告诉它Root1是Root的新版本?我问,因为将B改为B根承诺保持在Roo1之上。当然,这不是我想要的。
以下是重现情况的代码
mkdir shared_commit_update ; cd shared_commit_update
git init; git checkout -b Init ; echo iii > init ; git add init ; git commit -m init ;
git checkout -b Root ; echo rrr > root ; git add root ; git commit -m root
git checkout -b Top ; echo toptop > top ; git add top ; git commit -m top
git checkout Root ; git checkout -b UpdatedRoot ; echo 222 > root ; git add root ; git commit --amend -m updated_root
git checkout Top ; echo Try to replace tops root with updated root ; gitk --all &
bash
echo 'shared_commit_update' folder created
我希望Top
提交位于UpdatedRoot
一个。如果我只是git rebase UpdatedRoot
,我会UpdatedRoot
位于Root
的顶部而非代替它。
答案 0 :(得分:0)
切换到分支B(即git rebase -i [hash of Root1]
)。然后,使用提交Root1的哈希值(即ul li
)
答案 1 :(得分:0)