首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git:如何在同一分支中重新基于提交的分支?

Git:如何在同一分支中重新基于提交的分支?
EN

Stack Overflow用户
提问于 2019-12-13 11:48:59
回答 1查看 1.9K关注 0票数 4

引用this excellent answer,我读过并且(我想)理解了,但据我所见,它没有回答我的具体问题(因为它解释了如何在一个不同的分支中重基到一个提交,但我想要在同一个分支上重基)。

Situation

master

  • Later,
  • 有两个分支,masterfeaturefeature在某种程度上会因为任何原因而重新建立在master之上*我们希望feature从以前提交的
  • 中“分支”出来。

(*编辑:原因,例如:本地feature分支中的更改在将其重设为master之后会崩溃,因此尝试找出哪些提交master以类似于git-bisect的方式破坏了feature分支)

问题:如何实现这一点?

Illustration

如何从这一点出发:

代码语言:javascript
复制
                 G--H--I--J    <-- feature
                /
A--B--C--D--E--F               <-- master

...to这个?

代码语言:javascript
复制
        G--H--I--J             <-- feature
       /
A--B--C--D--E--F               <-- master

到目前为止,尝试了

尝试1:

代码语言:javascript
复制
git checkout feature
git rebase C

结果:Current branch bug/8985-miniredis is up to date.无变化。我认为这个结果很符合逻辑,因为对于git来说,C也是“当前分支”的一部分。(尽管在我看来,“当前分支”只是G..J)

第二次尝试:

代码语言:javascript
复制
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:

代码语言:javascript
复制
git checkout feature
git rebase --onto C master..feature

结果:fatal: invalid upstream 'master..feature'

正如该答案的comments中所述,这是不可能的,因为git插入..HEAD部件本身。但是,肯定有办法做到这一点吗?

问题,换句话说:

如果git rebase --onto C master..feature是有效的,如何实现它会做什么?

EN

回答 1

Stack Overflow用户

发布于 2019-12-13 13:18:41

首先,感谢@YesThatIsMyName为我指明了正确的方向。

第1.a点this answer有我需要的东西。

使用上面的表示法,正确的命令如下:

git rebase --onto C master feature

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59322034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档