如何将本地GIT完全重置为先前的提交?

时间:2012-10-22 03:00:34

标签: git

我想对我的本地副本执行以下操作:

  1. 放弃我所做的所有更改。
  2. 删除所有已添加的新文件。
  3. 将我的本地副本重置为先前的提交ID,以便只有该提交时存在的文件存在于我的本地副本中。
  4. 我应该运行以下内容吗?

    git checkout ID .
    git clean -fd
    

1 个答案:

答案 0 :(得分:5)

像这样:

git reset --hard [sha]

请注意,它不会删除未跟踪的文件,因为Git对它们一无所知。运行此命令时,所有暂存和未暂停的更改都将丢失,因此请注意这一点。

如果你不小心运行了这个并希望回到旧提交,那么git reflog会显示一个输出,如:

86b46fd HEAD@{0}: 86b46fd: updating HEAD
a2b03fa HEAD@{1}: commit: [commit message]

这里的HEAD@{1}提交是旧的。使用以下命令重置为:

git reset --hard HEAD@{1}