Git rebase 空分支

Git rebase empty branch

提问人:Vastar 提问时间:11/3/2023 更新时间:11/3/2023 访问量:33

问:

假设我取了一个分支,称为 。mainBR1

我提交了 3 个更改(c1、c2、c3)。BR1

然后我取 的一个分支,称为 。BR1BR2

main ------> BR1(C1)(C2)(c3) ----->BR2

我现在已经决定,我实际上不想从分支,而是我想从......即我不想打开 c1、c2、c3BR2BR1BR2mainBR2

`main` ------> `BR1` (c1) (c2) (c3) 
       ------> `BR2`

我认为我只需要重新定位是对的吗?BR2main

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

所以不确定是否会有什么东西坏了。

对我来说,另一个令人困惑的事情是它没有提交,即当我创建分支时,我没有对它进行提交,所以我什至不确定它是否有效 “空”分支变基?BR2BR2

git 分支 变基

评论


答:

1赞 Tim Biegeleisen 11/3/2023 #1

如果真的没有自己的提交,你可以简单地对分支进行硬重置:BR2main

# from BR2
git reset --hard main

如果确实有自己的提交,那么你可以使用 rebase onto:BR2

# from BR2, again
git rebase --onto main c3

评论

0赞 Vastar 11/3/2023
谢谢 - 我知道在第一种情况下我把它弄得太复杂了......