在git中最后一次提交后重置所有更改

时间:2011-01-07 21:09:20

标签: git git-commit git-reset git-revert

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

3 个答案:

答案 0 :(得分:488)

首先重置更改

git reset HEAD --hard

然后清除所有未跟踪的内容。如果要保留由于.gitignore而未跟踪的文件,请小心使用此命令。

git clean -fd

答案 1 :(得分:52)

  

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

  1. 您可以使用以下内容撤消对跟踪的文件的更改

    git reset HEAD --hard
    
  2. 您可以使用

    删除未跟踪的文件
    git clean -f
    
  3. 您可以使用以下命令删除未跟踪的文件和目录,

    git clean -fd
    

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

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

    git clean -fdx
    

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

  5. 您也可以将clean.requireForce设置为false

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

    以避免在使用-f时使用--forcegit clean)。

答案 2 :(得分:0)

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

root> git reset --hard HEAD〜1

root> git push -f

有关更多git命令的信息,请参见此page