从现有提交创建新分支,现在origin和origin / master不同步

时间:2012-09-04 12:42:16

标签: git version-control github

我有一个我和GitHub一起使用的回购。以前,repo只有1个分支(即master)并且与远程仓库完全一致,但是已经完成了2个新的实验工作的本地提交,我决定我想做的是创建一个新的分支这两个提交在" dev"仍然可以在GitHub上作为替代分支访问的分支。

因此,我做了以下事情:

git branch dev             # create new branch
git reset --hard HEAD~2    # roll back 2 commits on HEAD
git checkout dev           # make dev the active branch

在当地,一切都很好。我现在有两个本地分支:master(在稳定版本后面是2个提交)和当前实验工作中的dev (HEAD)

然而,在GitHub方面,一切都不顺利:我有两个分支,master (HEAD)dev,但它们都完全相同(即最后一次提交在master分支上,实际上我只想在dev分支上进行。

总而言之,如果我们调用最新的不稳定提交(开发工作),提交10和稳定提交号8,那么我们有以下内容:

10 - devorigin/masterorigin/devorigin/HEAD

9

8 - master

所以问题是我如何让origin/master正确地指向提交8.(而且我对origin/HEAD在所有这些中的作用感到困惑......)

1 个答案:

答案 0 :(得分:2)

如果要更改master的历史记录,则需要git push -f origin master才能使GitHub记录主要的新HEAD。 (确保警告任何合作者的变化:他们需要将他们的本地主分支重置为新的HEAD)。
dev还不够。

origin/HEAD引用远程GitHub仓库的HEAD(应该是origin/master,除非您通过GitHub repo Admin界面明确更改了它。)