gpt4 book ai didi

Git:如何在同一分支的提交之上重新建立分支?

转载 作者:行者123 更新时间:2023-12-04 13:00:10 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to reparent in Git

(2 个回答)


1年前关闭。




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

情况

  • 有两个分支,masterfeature , feature在某些时候会重新基于 master 的顶部
  • 后来,无论出于何种原因*我们想要 featuremaster 的先前提交之一“分支出”

  • (* 编辑:原因,例如:本地 feature 分支中的更改中断,将其重新设置为 master 后,请尝试找出在 master 上的提交以类似的方式破坏了 feature 分支如 git-bisect )

    问题:如何实现这一目标?

    插图

    如何从这里开始:
                     G--H--I--J    <-- feature
    /
    A--B--C--D--E--F <-- master

    ……到这个?
            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 )

    尝试#2:
    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如果它有效会怎么做?

    最佳答案

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

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

    使用上面的符号,正确的命令如下:
    git rebase --onto C master feature

    关于Git:如何在同一分支的提交之上重新建立分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59322034/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com