在使用git时,我通常会从更新的主分支创建功能分支,然后在完成工作后,我会将该功能分支合并回远程主分支。
为此,我通常切换到本地主分支,执行git pull
并使用git checkout -b 'myFeatureBranchName'
创建并切换到新的本地分支。我做我的更改提交,然后推然后合并回主。
然而,在这个例子中,我已经切换到master,但忘记创建和切换到一个新的分支。是否有一个命令允许我创建并切换到一个新的功能分支,并将我的所有更改转移到新的分支?
提前谢谢
最佳答案
你的问题实际上包含了你问题的答案。可以使用以下命令:
git checkout -b 'myFeatureBranchName'
这将从
master
创建一个包含您所有工作的新功能分支。您可以将此分支推送到远程,发出拉取请求,然后按正常方式合并。但是,关于如何处理本地
master
分支还有一个挥之不去的问题,因为它现在将包含真正只属于feature分支的新提交。您可以考虑以下两种选择:一种是在开始提交功能之前回滚到。您可以对
master
中不属于那里的提交使用核弹。如果master
中有3次提交,您将执行以下操作:git reset --hard HEAD~3
第二个选项是删除本地
master
分支,然后只需执行master
即可从远程获取新的分支:git branch -d master
git checkout --track -b origin/master
无论是哪种情况,您现在都将您的功能分支推送到github,并且您的本地
git pull
处于正确的状态。