在执行了 "git reset --hard" 后,Git 本地分支和 origin/master 仍然存在分歧。

3

完成以下操作后

git reset --hard

我本来期望看到的是 'HEAD is now at hexNumber',然后是 'on branch master....nothing to commit.' 但实际上我看到的是

    wb316-mac03:MoodTrack student$ git reset --hard
    HEAD is now at ec11193 preparation for merge
    wb316-mac03:MoodTrack student$ 
    wb316-mac03:MoodTrack student$ git status
    # On branch master
    # Your branch and 'origin/master' have diverged,
    # and have 2 and 9 different commits each, respectively.
    #
    nothing to commit (working directory clean)

我希望完全被远程主分支中的内容覆盖而不需要重新克隆。我做错了什么吗?
2个回答

5

您需要将要重置的提交添加到:

$ git reset --hard origin/master

git reset --hard 只会重置到 HEAD (在你的情况下可能是 master)。


我正在查看 GitHub 上的提交。那是在提交详情页面上的极长数字(6e01ab716bd1e9bf325f752af94269745b9fc3dc)还是在提交历史页面上的10位数字? - undefined
我的错误。这是一个很长的数字。这个十位数是第一个数字的缩写。 - undefined
我的语法有问题。许多变体都给我错误提示:“未知的修订版或路径不在工作树中”。 - undefined
完美。我想要重置的提交是字面上的 origin/master。无需指定提交编号。 - undefined

0
如果你想要远程主分支上的内容,并且不关心你的分支上前面的两个提交,可以切换到另一个分支,删除主分支,然后拉取远程分支。
git checkout -b master_tmp
git branch -D master
git checkout -t origin/master
git branch -D master_tmp

祝你好运。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接