繁体   English   中英

我分支了错误的分支,如何将更改移动到正确的分支?

[英]I branched off the wrong branch, how do I move my changes to correct branch?

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

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

目前的情况是这样的(我自己画的图):

git 分支

真的不想放弃目前在我的feature-branch上的所有工作。 如何移动我在feature-branch中的所有更改,以便它们位于一个新分支中,但另一个分支是从release分支分支出来的?

我尝试了什么?

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

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

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

要复制来自feature的提交,并且只复制它们(在从它派生的feature之前或之后没有来自develop的提交),您可以使用以下命令:

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`

试试这个命令(伪代码:正确应用你的命名)

git checkout release
git rebase feature

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

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

您需要将release分支重新设置为 master 以便将它们放在release分支中。 通过运行:

git checkout release
git rebase develop

PS这里是描述rebase命令https的链接://git-scm.com/docs/git-rebase

我认为最好的方法是将您的功能分支重新定位到发布。 git rebase 命令非常灵活。 您可以告诉它要将分支移动到哪里,以及要移动多少分支。

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

git rebase --onto Release Develop Feature

或者:

git checkout Feature
git rebase --onto Release Develop

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM