如何刪除工做目錄中的全部更改,包括新的未跟蹤文件。 我知道git checkout -f
,但它不會刪除自上次提交以來建立的新的未跟蹤文件。 html
有人知道怎麼作嗎? git
我常常使用的最安全的方法: 安全
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
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
看看git clean
命令。 htm
git-clean - 從工做樹中刪除未跟蹤的文件 遞歸
經過從當前目錄開始遞歸刪除不受版本控制的文件來清除工做樹。
一般,只刪除git未知的文件,但若是指定了-x選項,則也會刪除忽略的文件。 例如,這能夠用於刪除全部構建產品。
對於全部未暫存的文件,請使用:
git checkout -- .
的.
最後很重要。
你能夠替換.
使用子目錄名稱僅清除項目的特定子目錄。 這裏特別提到了這個問題。
如下做品:
git add -A . git stash git stash drop stash@{0}
請注意,這將丟棄您的未分階段和分階段的本地更改。 所以,在運行這些命令以前,您應該提交任何想要保留的內容。
一個典型的用例:您移動了不少文件或目錄,而後想要恢復到原始狀態。