git clean的作用是刪除工作目錄中尚未添加到git版本控制的文件或目錄坦弟。
未添加到版本控制,且不在.gitignore中的减拭,都是Untracked的狀態(tài)。
有時候我們在項目中添加了些文件修陡、目錄測試了一把沧侥,測試完成后想把它們刪了魄鸦。
有時候則是執(zhí)行回滾后,有些文件或目錄回滾到了Untracked狀態(tài)旺罢,我們需要把它們刪掉。
這時候就可以使用git clean扁达。
git clean的用法:
usage: git clean [-d] [-f] [-n] [-q] [-x | -X] [--] <paths>...
-q, --quiet be quiet(靜默刪除蠢熄,只會告訴你出錯信息。如果是成功刪除了文件或目錄則保持沉默)
-n, --dry-run dry run(告訴你會被刪除的文件或目錄有哪些签孔,刪除文件畢竟是一件嚴(yán)肅的事,在執(zhí)行該命令前請務(wù)必加上該參數(shù)先確定下)
-f, --force force(強(qiáng)制刪除图仓,clean.requireForce默認(rèn)的值是true但绕。這種情況下只有加上該參數(shù)才能刪除)
-d remove whole directories(刪除的范圍是整個目錄)
-x remove ignored files, too(即使是被添加進(jìn)gitignore的文件或目錄也刪掉透绩。這里有坑壁熄,下面說~)
-X remove only ignored files(只刪除被添加進(jìn)gitignore的文件或目錄)
所以碳竟,在執(zhí)行該命令前,務(wù)必先加上-n以檢查一遍莹桅。否則刪除后要找回來也是挺麻煩的事~
有坑:
不加上x參數(shù),是不會刪除被ignore的文件或目錄的懂拾。但是~n泶铩岖赋!
如果你在.gitignore文件中對目錄的描述是dir/*
那么很抱歉瓮孙,這個目錄及里面的文件也會被清除掉选脊。即使該目錄的確是被git所忽略的脸甘。
所以,在.gitignore中對目錄的描述最好是
dir1/
dir2
最后吐槽網(wǎng)上很多關(guān)于git clean的介紹(中文的)中丹诀,對-f參數(shù)的描述是file。但其實是force~
- 本文固定鏈接: http://zoufeng.net/2016/08/05/git-clean/
- 轉(zhuǎn)載請注明: foam 2016年08月05日于 foam 發(fā)表