3

我有一个与 GitHub 一起使用的存储库。以前,repo 只有 1 个分支(即 master),并且与远程 repo 完全保持同步,但是在完成了 2 次本地提交的新实验工作后,我决定我想做的是创建一个新分支“开发”分支上的这 2 个提交仍然可以在 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 - dev, origin/master, origin/dev,origin/HEAD

9

8 -master

所以问题是我如何origin/master正确指向提交 8。(而且我对origin/HEAD所有这一切中的角色感到困惑......)

4

1 回答 1

2

如果你想改变 的历史master,你需要git push -f origin master为了让 GitHub 为 master 记录新的 HEAD。(请务必警告任何协作者该更改:他们需要将本地主分支重置为该新 HEAD)。
dev是不够的。

origin/HEAD参考HEAD远程 GitHub 存储库的 (应该是origin/master,除非您通过 GitHub 存储库管理界面明确更改它)。

于 2012-09-04T12:49:50.303 回答