Git:如何在同一分支中的提交之上重新设置分支的基础?

Git:如何在同一分支中的提交之上重新设置分支的基础?,git,Git,引用,我读过并且(我认为)我理解,但就我所见并没有回答我的具体问题(因为它解释了如何在不同的分支中重新设置提交的基址,但我想在同一个分支上重新设置基址) 形势 有两个分支,master和feature,feature在某一点上会在master之上重新设置基础 以后,无论出于何种原因,*我们希望功能从master (*编辑:原因,例如:本地功能分支中的更改在将其重设为主控后中断,因此请尝试找出是哪个在主控上提交的更改以与git bisect类似的方式中断了功能分支) 问题:如何实现这一点 插图

引用,我读过并且(我认为)我理解,但就我所见并没有回答我的具体问题(因为它解释了如何在不同的分支中重新设置提交的基址,但我想在同一个分支上重新设置基址)

形势

  • 有两个分支,
    master
    feature
    feature
    在某一点上会在
    master
    之上重新设置基础
  • 以后,无论出于何种原因,*我们希望
    功能
    master
(*编辑:原因,例如:本地
功能
分支中的更改在将其重设为
主控
后中断,因此请尝试找出是哪个在
主控
上提交的更改以与
git bisect
类似的方式中断了
功能
分支)

问题:如何实现这一点

插图

如何做到这一点:

                 G--H--I--J    <-- feature
                /
A--B--C--D--E--F               <-- master
结果:
当前分支错误/8985 miniredis是最新的。
没有任何更改。 我认为这个结果很符合逻辑,因为对于git来说,
C
也是“当前分支”的一部分。(尽管在我看来,“当前分支”只是
G..J

尝试#2:

结果:
首先,倒带磁头,在其上重放您的工作…
。然后
feature
简单地指向
C
,其他提交都“丢失”。我真的不明白这里发生了什么,但在我看来,git无法知道
功能从
F
开始

尝试#3:

结果:
致命:无效的上游“主..功能”

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

问题换句话说:


如何实现git rebase--On C master..feature
在有效的情况下所能实现的功能?

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

第1.a点。当然有我需要的

使用上面的符号,右命令如下所示:


git-rebase--on C master feature

@downvoter:想解释一下你的问题吗?哦,现在我明白你想做什么了。。。这完全没有意义。。这是什么“无论如何”的理由?我的意思是你可以创建一个新的分支,从C分支,然后把你所有的提交推到那里,然后删除旧的功能分支。。。但是你必须处理合并冲突。但是仅仅将分支拉回到另一个以前的提交将不起作用。也许这其中的一个解决方案可以帮助你:或者你能进一步说明为什么它“毫无意义”?我这样做的原因(将编辑问题):例如,我有一堆本地提交,在我将它们重新设置到master上后停止工作;现在我想知道,是哪个来自master的提交破坏了它们(a-la
git-bisect
)。Re.:“您可以创建分支…并删除旧分支”:这也是正常重基操作的手动替代方法,不是吗?事实上1.a的似乎正是我所需要的;我会试试看,如果是这样的话,这个问题可以作为一个问题来解决dupe@phd:是的,根据该问题的第一个答案,请参见下面我自己的答案:)现在您可以删除您的问题,因为它是重复的。
        G--H--I--J             <-- feature
       /
A--B--C--D--E--F               <-- master
git checkout feature
git rebase C
git checkout feature
git rebase --onto C feature
git checkout feature
git rebase --onto C master..feature