我们有一个develop
分支和一个release
分支。
我被要求进行更改,但后来被告知更改必须是修补程序,因此我应该分支到release
分支。
目前的情况是这样(我自己绘制了图表):
我真的不想放弃我目前feature-branch
上的所有作品。如何在feature-branch
中移动所有更改,以使它们位于新分支中,但又一个分支分支 release
? >
我尝试了什么?
我尝试使用rebase --onto
,但出现以下错误:
$ git rebase-进入发布分支功能/ 1功能/ 1a
致命:致命:没有这样的分支/提交'feature / 1a'
答案 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
分支之后接受了提交,则这些提交将不存在,也不会出现在feature
和release
中。
您需要重新设置release
分支的masters基础,才能使其进入release
分支。通过运行:
git checkout release
git rebase develop
P.S。这是描述rebase
命令https://git-scm.com/docs/git-rebase