395

如何撤消上次提交后对我的目录所做的每项更改,包括删除添加的文件、重置修改的文件以及重新添加已删除的文件?

4

3 回答 3

684

首先,重置所有更改

这将撤消您对跟踪文件所做的任何更改并恢复已删除的文件:

git reset HEAD --hard

二、删除新文件

这将删除自上次提交以来添加的所有新文件:

git clean -fd

.gitignore保留未跟踪的文件;他们不会被删除

警告:使用-x而不是-fd 删除被忽略的文件。你可能不想这样做。

于 2011-01-07T21:10:29.860 回答
91

如何撤消上次提交后对我的目录所做的每项更改,包括删除添加的文件、重置修改的文件以及重新添加已删除的文件?

  1. 您可以使用以下方法撤消对跟踪文件的更改:

    git reset HEAD --hard
    
  2. 您可以使用以下方法删除未跟踪的文件:

    git clean -f
    
  3. 您可以使用以下方法删除未跟踪的文件和目录:

    git clean -fd
    

    您无法撤消对未跟踪文件的更改

  4. 您可以删除忽略和未跟踪的文件和目录

    git clean -fdx
    

    您无法撤消对忽略文件的更改

您还可以设置clean.requireForcefalse

git config --global --add clean.requireForce false

避免在使用时使用-f( --force) git clean

于 2016-10-30T15:54:16.303 回答
-6

在这种情况下有两个命令可以使用,

root>git reset --hard HEAD~1

根>git推送-f

有关更多 git 命令,请参阅此页面

于 2019-08-26T11:46:41.577 回答