git:撤消全部工做目錄更改,包括新文件

如何刪除工做目錄中的全部更改,包括新的未跟蹤文件。 我知道git checkout -f ,但它不會刪除自上次提交以來建立的新的未跟蹤文件。 html

有人知道怎麼作嗎? git


#1樓

我常常使用的最安全的方法: 安全

git clean -fd

根據/docs/git-clean頁面的語法解釋: 測試

  • -f (別名: --force )。 若是Git配置變量clean.requireForce未設置爲false,則git clean將拒絕刪除文件或目錄,除非給定-f,-n或-i。 除非給出第二個-f,不然Git將拒絕使用.git子目錄或文件刪除目錄。
  • -d 。 除了未跟蹤的文件以外,刪除未跟蹤的目錄。 若是未跟蹤的目錄由不一樣的Git存儲庫管理,則默認狀況下不會刪除它。 若是您確實要刪除此類目錄,請使用-f選項兩次。

正如評論中所提到的,最好作一個git clean -nd ,它會執行幹運行並告訴你在實際刪除它以前會刪除什麼。 ui

連接到git clean doc頁面: https//git-scm.com/docs/git-clean spa


#2樓

git reset --hard # removes staged and working directory changes

## !! be very careful with these !!
## you may end up deleting what you don't want to
## read comments and manual.
git clean -f -d # remove untracked
git clean -f -x -d # CAUTION: as above but removes ignored files like config.
git clean -fxd :/ # CAUTION: as above, but cleans untracked and ignored files through the entire repo (without :/, the operation affects only the current directory)

要查看以前將刪除的內容,而不實際刪除它,請使用-n標誌(這基本上是一個測試運行)。 當您準備好實際刪除時,請刪除-n標誌: 版本控制

git clean -nfd code


#3樓

看看git clean命令。 htm

git-clean - 從工做樹中刪除未跟蹤的文件 遞歸

經過從當前目錄開始遞歸刪除不受版本控制的文件來清除工做樹。

一般,只刪除git未知的文件,但若是指定了-x選項,則也會刪除忽略的文件。 例如,這能夠用於刪除全部構建產品。


#4樓

對於全部未暫存的文件,請使用:

git checkout -- .

. 最後很重要。

你能夠替換. 使用子目錄名稱僅清除項目的特定子目錄。 這裏特別提到了這個問題。


#5樓

如下做品:

git add -A .
git stash
git stash drop stash@{0}

請注意,這將丟棄您的未分階段和分階段的本地更改。 所以,在運行這些命令以前,您應該提交任何想要保留的內容。

一個典型的用例:您移動了不少文件或目錄,而後想要恢復到原始狀態。

致謝: https//stackoverflow.com/a/52719/246724

相關文章
相關標籤/搜索