2011-01-07 83 views
222

如何撤消最後一次提交後對我的目錄所做的更改,包括刪除添加的文件,重置已修改的文件以及添加回刪除的文件?重置上次提交後git中的所有更改

+0

可能重複[恢復到以前的Git提交](http://stackoverflow.com/questions/4114095/revert-to-previous-git-commit) – nawfal 2014-02-09 18:45:56

+1

@nawfal可能是重複的,但'重置所有更改後最後提交'符合更多的搜索條件(在谷歌搜索詞)比相應的'如何恢復Git存儲庫'。至少對於像我這樣沒有英語作爲母語的人來說:d – 2017-08-04 07:33:54

回答

409

首先重置變化

git reset HEAD --hard 

然後清理掉一切未經跟蹤。如果您想保留由於.gitignore而未被追蹤的文件,請小心使用此命令。

git clean -fd 
+6

@Adam:你有時也會希望`-x`選項指向`git clean`,它也指示它去除被忽略的文件。 – Cascabel 2011-01-08 00:35:16

32

我如何可以撤消後終於到我的目錄所做的每一個變化承諾,包括刪除添加的文件,重新修改的文​​件,並加回被刪除的文件?

  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

相關問題