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

Olb*_*ion 0 git

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

  1. 放弃我所做的所有更改.
  2. 删除所有已添加的新文件.
  3. 将我的本地副本重置为先前的提交ID,以便只在我的本地副本中存在该提交时存在的文件.

我应该运行如下的东西吗?

git checkout ID .
git clean -fd
Run Code Online (Sandbox Code Playgroud)

Rya*_*igg 5

像这样:

git reset --hard [sha]
Run Code Online (Sandbox Code Playgroud)

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

如果你不小心运行它并希望返回旧的提交,那么git reflog将显示如下输出:

86b46fd HEAD@{0}: 86b46fd: updating HEAD
a2b03fa HEAD@{1}: commit: [commit message]
Run Code Online (Sandbox Code Playgroud)

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

git reset --hard HEAD@{1}
Run Code Online (Sandbox Code Playgroud)