224 我做git pull了一个错误: 下列工作树文件将被合并覆盖...请先移动或删除它们,然后再进行合并。 为了解决这个问题,我做了以下工作: git fetch git reset --hard origin/master 现在,当我这样做时git pull,它会显示所有最新信息。我想知道运行这些命令时到底发生了什么。我知道可以git fetch从远程存储库中获取更改,而无需将其合并到本地存储库中。 是什么意思git reset --hard origin/master?它是如何工作的? git version-control git-reset — 拉扎 source
414 git reset --hard origin/master 说:丢弃我所有已上演和未上演的更改,忘记我当前本地分支上的所有内容,并使它与完全相同origin/master。 您可能想在运行命令之前询问此问题。通过使用与“硬重置”中相同的词来暗示破坏性。 — 世邦魏理仕 source 9 您可以使用取消此移动git reset --hard HEAD@{1}。HEAD@{1}因情况而异,因此建议您在中进行搜索git reflog。 — Nils Werner 2 请注意,@ NilsWerner的撤消移动方法不会还原已暂存和未暂存的更改。那些永远消失了。 — 迈克尔·安德森 3 仍可以使用找到已暂存的文件git fsck --lost-found,但它们不会附加到其原始文件路径,并且可能难以分类。 — CB Bailey 2013年 1 当您(可能是无意中)将更改提交给本地主节点而不是本地分支时,将本地主节点分支重置为原始/主节点通常很有用。只需为您的最新提交创建一个本地分支,然后将您的本地master重置为origin / master。然后,您可以根据需要从master合并或重新建立分支。 — Mike Hopper 2 大声笑“提示于”是描述此问题的好方法,因为它 — 远未达到
git reset --hard HEAD@{1}
。HEAD@{1}
因情况而异,因此建议您在中进行搜索git reflog
。