1、 git clean
命令介紹
對於工作目錄中一些工作或文件,你想做的也許不是stash存儲,而是移除,即: 清理工作目錄。
可以使用git clean
命令來處理這個問題。
git clean
命令是用來從你的工作目錄中,刪除所有未被Git追蹤過的文件。
git clean
命令經常和git reset --hard
命令一起結合使用。因爲記住reset
回退,隻影響被追蹤過的文件,所以需要clean
命令,來刪除沒有track過的文件。
結合使用這兩個命令,能讓你的工作目錄完全回滾到一個指定的commit狀態。
2、git clean
命令用法
-
git clean -n
:是一次git clean
的演習,告訴你哪些文件會被刪除。記住他不會真正的刪除文件, 只是一個提醒。(也就是查看可使用git clean
命令清除的文件)使用``--dry-run
選項也可以。
在清理工作目錄前,強烈建議使用
-n
參數,來先看看將會刪掉哪些文件,防止重要文件被誤刪。 -
git clean -f
:刪除當前目錄下所有沒有被track的文件。他不會刪除.gitignore
文件裏面指定的文件夾和文件,不管這些文件有沒有被track過。-f
選項:表示着“強制(force)”或“確定要移除”,默認爲true
,如果需要修改,需要編輯Git 配置變量clean.requireForce
參數。 git clean -f <path>
:刪除指定路徑下的沒有被track過的文件。git clean -df
:移除工作目錄中所有未追蹤的文件以及空的文件夾。git clean -xf
:刪除當前目錄下所有沒有被track過的文件. 不管他是否是.gitignore
文件裏面指定的文件夾和文件。
3、總結
-
你需要謹慎地使用這個命令,因爲它被設計爲從工作目錄中移除未被追蹤的文件。如果你改變主意了,你也不一定能找回來那些文件的內容。
(刪除了就找不回了,一定要慎用。但是如果被
git add
暫存過,就還能找回來。) 默認情況下,
git clean
命令只會移除沒有被忽略,且未被跟蹤的文件。 任何與.gitignore
或其他忽略文件中,所能模式匹配到的文件,都不會被移除。 如果你也想要移除那些文件,例如爲了做一次完全乾淨的構建而移除所有由構建生成的.o
文件, 可以給git clean
命令增加一個-x
選項。-
使用選項
-i
參數(interactive),表示可以使用交互的模式運行git clean
命令。在這種方式下可以分別地檢查每一個文件,交互的指定刪除的模式。$ git clean -n -i Would remove the following item: clean.txt *** Commands *** 1: clean 2: filter by pattern 3: select by numbers 4: ask each 5: quit 6: help What now>