是否有可能将变更从一个分支提交到另一个分支。

假设我在BRANCH1中提交了更改,并希望将它们推到BRANCH2。

从BRANCH1中,这样做是否有效:

git push origin **BRANCH2**

然后重置BRANCH1?


当前回答

您已经提交到BRANCH1,并希望在不丢失更改的情况下摆脱此提交? Git重置是你所需要的。 做的事:

git branch BRANCH2

如果你想让BRANCH2成为一个新的分支。如果你愿意,你也可以在最后将它与另一个分支合并。如果BRANCH2已经存在,则省略此步骤。

然后做:

git reset --hard HEAD~3

如果你想重置你已经提交的分支上的提交。这将使用最后三次提交的更改。

然后执行以下操作,将重置后的提交提交到BRANCH2

git checkout BRANCH2

这个来源很有帮助: https://git-scm.com/docs/git-reset#git-reset-Undoacommitmakingitatopicbranch

其他回答

@SLaks的答案是小道具,这对我来说基本适用。但是在分支有不同头的情况下。一个方便的方法是使用樱桃。

git登录Branch1与您的更改 复制提交SHA您的更改 Git checkout branch2 -在这里应用您的更改 git选择SHA_OF_COMMIT_FROM_STEP_2

在BRANCH1上提交更改。 打开终端,输入命令-> "git push <remote_name> <branch1_name>:<branch2_name>"

完成了。

对于这个问题: 命令为

git push origin BRANCH1:BRANCH2

编辑:现在我意识到,GitHub桌面有很好的UI将你的变化从一个分支到另一个。当然,这不是一个比用手敲击终端命令更好的选择。

这很简单。假设您已经对本地和远程驻留的分支A进行了更改,但是您想将这些更改推到不存在的分支B。

步骤01:创建并切换到新的分支B

git checkout -b

步骤02:在新的本地分支中添加更改

Git添加。//或指定文件

步骤03:提交更改

Git commit -m commit_message

步骤04:将更改推送到新的分支B。下面的命令也将远程创建一个新的分支B

git push origin B

现在,你可以从bitbucket中验证分支B将比分支A多提交一次,当你签出分支A时,这些更改将不会存在,因为这些更改已被推入分支B。

注意:如果您已经将更改提交到分支A中,然后您想将这些更改转移到新的分支B中,那么您必须首先重置这些更改。# HappyLearning

您已经提交到BRANCH1,并希望在不丢失更改的情况下摆脱此提交? Git重置是你所需要的。 做的事:

git branch BRANCH2

如果你想让BRANCH2成为一个新的分支。如果你愿意,你也可以在最后将它与另一个分支合并。如果BRANCH2已经存在,则省略此步骤。

然后做:

git reset --hard HEAD~3

如果你想重置你已经提交的分支上的提交。这将使用最后三次提交的更改。

然后执行以下操作,将重置后的提交提交到BRANCH2

git checkout BRANCH2

这个来源很有帮助: https://git-scm.com/docs/git-reset#git-reset-Undoacommitmakingitatopicbranch

这很容易做到

git status
git add .
git commit -m "any commit"
git pull origin master 
git push origin master:development # assuming 'development' is the target branch name.