我从错误的分支分支出来,如何将更改移至正确的分支?

时间:2019-09-26 15:04:51

标签: git

我们有一个develop分支和一个release分支。

我被要求进行更改,但后来被告知更改必须是修补程序,因此我应该分支到release分支。

目前的情况是这样(我自己绘制了图表):

git branching

真的不想放弃我目前feature-branch上的所有作品。如何在feature-branch中移动所有更改,以使它们位于新分支中,但又一个分支分支 release? >

我尝试了什么?

我尝试使用rebase --onto,但出现以下错误:

  

$ git rebase-进入发布分支功能/ 1功能/ 1a

     

致命:致命:没有这样的分支/提交'feature / 1a'

3 个答案:

答案 0 :(得分:2)

要复制来自feature的提交,并且仅复制它们(从develop派生的feature之前或之后没有来自git checkout -B feature release # Checkout `release` and bring `feature` along git cherry-pick develop..feature@{1} # Retrieve commits from `feature` which are not on `develop` 的提交),可以使用以下命令:

selectorClick

答案 1 :(得分:2)

我认为最好的方法是将Feature分支重新建立到Release版本上。 git rebase命令非常灵活。您可以告诉它将分支移动到哪里,以及要移动多少分支。

此命令将从Feature分支移至Release分支,从Develop分支之后的提交开始:

git rebase --onto Release Develop Feature

或者:

git checkout Feature
git rebase --onto Release Develop

无需创建新分支或删除原始分支。

答案 2 :(得分:1)

尝试使用此命令(伪代码:正确应用您的命名)

git checkout release
git rebase feature

执行这些命令后,您将在feature分支的release分支中进行工作。

但是,如果develop在检出feature分支之后接受了提交,则这些提交将不存在,也不会出现在featurerelease中。

您需要重新设置release分支的masters基础,才能使其进入release分支。通过运行:

git checkout release
git rebase develop

P.S。这是描述rebase命令https://git-scm.com/docs/git-rebase

的链接