使用GIT时,我通常会在更新的主分支上创建功能分支,然后在完成工作后,我将功能分支合并回远程主分支。
要做到这一点,我通常会切换到本地主分支,执行git pull
并使用git checkout -b 'myFeatureBranchName'
这将创建&把我转到一个新的本地分行。我做了我的更改提交并推送然后合并回主人。
但是,在这种情况下,我已经切换到master完成了git pull
但忘记创建并切换到新分支。是否有一个命令可以让我创建&切换到新的功能分支,并将我的所有更改都转移到新分支?
提前致谢
答案 0 :(得分:3)
您的问题实际上包含您问题的答案。您可以使用此命令:
git checkout -b 'myFeatureBranchName'
这将创建一个包含所有工作的master
新功能分支。您可以将此分支推送到远程,发出拉取请求,并正常合并。
然而,关于如何处理本地master
分支存在一个挥之不去的问题,因为它现在将包含仅属于功能分支的新提交。您可以考虑以下两个选项:
一种是在开始为该功能提交之前回滚master
。您可以在master
中核实那些不属于那里的提交。如果master
中有3次提交,您可以这样做:
git reset --hard HEAD~3
第二个选项是删除您的本地master
分支,然后只需执行git pull
即可从遥控器获取新分支:
git branch -d master
git checkout --track -b origin/master
在任何一种情况下,您现在已将功能分支推送到GitHub,并且您的本地master
处于正确状态。
答案 1 :(得分:0)
您可能想看看这个问题:Move the most recent commit(s) to a new branch with Git
专业提示:永远不要在主分支上工作。将其分支到“开发”分支,并从那里创建您的功能分支。