git reset是什么意思--hard origin / master?

时间:2013-03-15 12:06:57

标签: git version-control

我做了一个git pull并得到一个错误“以下工作树文件将被合并覆盖...请在合并之前移动或删除它们”。为了解决这个问题,我做了以下

git fetch
git reset --hard origin/master

现在当我做git pull时,它会说明所有内容都是最新的。我想知道当我运行这些命令时到底发生了什么。我知道git fetch从远程仓库获取更改而不将它们合并到我的本地仓库中。

git reset --hard origin/master的含义是什么?它是如何工作的?

2 个答案:

答案 0 :(得分:305)

git reset --hard origin/master

说:抛弃我所有的分阶段和未分阶段的更改,忘记当前本地分支上的所有内容,并使其与origin/master完全相同。

您可能想在运行命令之前询问此问题。通过使用“硬重置”中的相同单词来暗示破坏性。

答案 1 :(得分:1)

在较新版本的git(2.23+)中,您可以使用:

git switch -C master origin/master

-C--force-create相同。相关Reference Docs