引用this excellent answer,我读过并且(我想)理解了,但据我所见,它没有回答我的具体问题(因为它解释了如何在一个不同的分支中重基到一个提交,但我想要在同一个分支上重基)。
Situation
master
master和feature,feature在某种程度上会因为任何原因而重新建立在master之上*我们希望feature从以前提交的(*编辑:原因,例如:本地feature分支中的更改在将其重设为master之后会崩溃,因此尝试找出哪些提交master以类似于git-bisect的方式破坏了feature分支)
问题:如何实现这一点?
Illustration
如何从这一点出发:
G--H--I--J <-- feature
/
A--B--C--D--E--F <-- master...to这个?
G--H--I--J <-- feature
/
A--B--C--D--E--F <-- master到目前为止,尝试了
尝试1:
git checkout feature
git rebase C结果:Current branch bug/8985-miniredis is up to date.无变化。我认为这个结果很符合逻辑,因为对于git来说,C也是“当前分支”的一部分。(尽管在我看来,“当前分支”只是G..J)
第二次尝试:
git checkout feature
git rebase --onto C feature结果:First, rewinding head to replay your work on top of it...。然后feature简单地指向C,而另一个提交则“丢失”。我不太明白这里发生了什么,但从我的角度来看,git不知道feature“开始”于F。
企图#3:
git checkout feature
git rebase --onto C master..feature结果:fatal: invalid upstream 'master..feature'
正如该答案的comments中所述,这是不可能的,因为git插入..HEAD部件本身。但是,肯定有办法做到这一点吗?
问题,换句话说:
如果git rebase --onto C master..feature是有效的,如何实现它会做什么?
发布于 2019-12-13 13:18:41
首先,感谢@YesThatIsMyName为我指明了正确的方向。
第1.a点this answer有我需要的东西。
使用上面的表示法,正确的命令如下:
git rebase --onto C master feature
https://stackoverflow.com/questions/59322034
复制相似问题