假设我拿了
main
的一个分支,称为BR1
。
我对
BR1
(c1、c2、c3)提交 3 处更改。
然后我取一根
BR1
的分支,称为BR2
。
main
------> BR1
(c1) (c2) (c3) -----> BR2
我现在决定,我实际上不想从
BR2
分支 BR1
,而是希望 BR2
从 main
分支...即我不想要 c1、c2、c3于 BR2
`main` ------> `BR1` (c1) (c2) (c3)
------> `BR2`
我的想法是否正确,我只需要将
BR2
重新设置为 main
?
git switch main
git pull
git switch BR2
git rebase -i main
git push -f
我测试了这个并且它有效,但我有点担心,因为交互式变基有
pick c1
pick c2
pick c3
我必须更改为
drop c1
drop c2
drop c3
所以不确定是否会有东西损坏。
对我来说另一个令人困惑的事情是
BR2
没有提交,即当我创建 BR2
分支时,我没有对其进行任何提交,所以我什至不确定重新设置“空”的基址是否有效' 分支?
如果
BR2
确实没有自己的提交,您可以简单地对main
分支进行硬重置:
# from BR2
git reset --hard main
如果
BR2
确实有自己的提交,那么您可以使用变基到:
# from BR2, again
git rebase --onto main c3