Git rebase 空分支

问题描述 投票:0回答:1

假设我拿了

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
分支时,我没有对其进行任何提交,所以我什至不确定重新设置“空”的基址是否有效' 分支?

git branch rebase
1个回答
0
投票

如果

BR2
确实没有自己的提交,您可以简单地对
main
分支进行硬重置:

# from BR2
git reset --hard main

如果

BR2
确实有自己的提交,那么您可以使用变基到:

# from BR2, again
git rebase --onto main c3
© www.soinside.com 2019 - 2024. All rights reserved.