事后创建git分支?

Her*_*itz 39 git version-control branch github

我怀疑我的问题的答案是相当简单的,但我是一个git新手,我的头脑在阅读所有类似的SoF问题的答案时感到困惑,这些问题似乎并不是我的问题.

这是我的问题:

我在github有一个回购,有一个分支('master'),我一直在我的本地仓库工作.在某些时候,我停止将提交重新提交给github上的主人,因为我担心他们会破坏事情.所以现在我在本地仓库中有很多提交,我想要回到github.

然而,我宁愿在github('development')上创建一个新的分支,而不是推回到master,我将所有本地提交推回到该分支(只有在它们更好之后我才会合并回master.测试).

这样做的简单方法是什么?

Gra*_*erg 57

在主人:

git checkout -b newbranch或者如下所示,只需执行a git branch newbranch即可创建新分支而无需切换到它.

这将创建一个在master当前提交的分支.完成后:

git checkout master

其次是:

git reset --hard <commit_hash>

<commit_hash>应由提交ID来代替你想掌握回滚到.

现在,您可以切换到新分支并将其推送到远程.

git checkout newbranch
git push origin newbranch
Run Code Online (Sandbox Code Playgroud)

  • @Herbert:首先,您可能希望在Grant的命令中使用`origin/master`(或同一对象的等效名称)作为`<commit_hash>`.其次,如果你想将你的本地`master`移动到`origin/master`指向的地方,那么最好直接这样做(因为删除和重新创建它也会重新启动它的reflog).如果`master`被签出,那么`git reset --hard origin/master`.如果没有签出,那么`git branch -f master origin/master`.你的`git checkout origin/master`会将提交检出为一个独立的HEAD,这可能不是你想要的. (4认同)
  • 也许可以使用 `gitbranch --set-upstream newbranch origin/newbranch` 来设置跟踪:) (2认同)