English ▾ 主題 ▾ 最新版本 ▾ git-clean 最後更新於 2.45.0

名稱

git-clean - 從工作目錄中移除未追蹤的檔案

概要

git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] [<pathspec>…​]

描述

透過遞迴方式從當前目錄開始,移除未受版本控制的檔案,以清理工作目錄。

正常情況下,只會移除 Git 未知的檔案;但如果指定了 -x 選項,被忽略的檔案也會被一併移除。例如,這在移除所有建置產物(build products)時非常有用。

如果提供了任何選用的 <pathspec>... 引數,則只有符合該路徑規格的路徑會受到影響。

選項

-d

通常,若未指定 <pathspec>,git clean 不會遞迴進入未追蹤的目錄,以避免移除過多檔案。指定 -d 可使其同時遞迴進入這些目錄。若已指定 <pathspec>,則 -d 參數無關緊要;所有符合指定路徑的未追蹤檔案(關於嵌套 git 目錄的例外情況,請參閱 --force 說明)都將被移除。

-f
--force

若 Git 設定變數 clean.requireForce 未設為 false,則 git clean 將拒絕刪除檔案或目錄,除非加上 -f 參數。Git 將拒絕修改未追蹤的嵌套 git 儲存庫(即包含 .git 子目錄的目錄),除非提供了第二次 -f 參數。

-i
--interactive

顯示將執行的操作並以互動方式清理檔案。詳情請見「互動模式」。設定變數 clean.requireForce 將被忽略,因為此模式透過互動過程提供了自身的安全保護。

-n
--dry-run

不實際移除任何檔案,僅顯示將會執行的操作。設定變數 clean.requireForce 將被忽略,因為無論如何都不會刪除任何檔案。

-q
--quiet

保持安靜,僅回報錯誤,不顯示已成功移除的檔案。

-e <pattern>
--exclude=<pattern>

除了標準忽略規則(請參閱 gitignore[5])外,使用指定的排除模式。

-x

不使用標準忽略規則(請參閱 gitignore[5]),但仍會使用命令列中透過 -e 選項指定的忽略規則。這允許移除所有未追蹤的檔案,包括建置產物。這可以用來(可能需搭配 git restoregit reset)建立一個純淨的工作目錄以測試乾淨的建置。

-X

僅移除被 Git 忽略的檔案。這對於從頭開始重新建置,但同時保留手動建立的檔案非常有用。

互動模式

當命令進入互動模式時,它會顯示將被清理的檔案和目錄,並進入其互動式命令迴圈。

命令迴圈會顯示可用的子命令列表,並出現 "What now> " 提示字元。通常,當提示字元以單個 > 結尾時,您只能從給定的選項中選擇一個並按下 Enter 鍵,如下所示:

    *** Commands ***
	1: clean                2: filter by pattern    3: select by numbers
	4: ask each             5: quit                 6: help
    What now> 1

只要選項是唯一的,您也可以輸入 cclean

主命令迴圈有 6 個子命令。

clean

開始清理檔案和目錄,然後退出。

filter by pattern(按模式篩選)

這會顯示將被刪除的檔案和目錄,並發出 "Input ignore patterns>>" 提示。您可以輸入以空格分隔的模式來從刪除清單中排除檔案和目錄。例如,"*.c *.h" 將排除以 ".c" 和 ".h" 結尾的檔案。當您對篩選結果滿意後,按下 ENTER 鍵(輸入為空)即可返回主選單。

select by numbers(按數字選擇)

這會顯示將被刪除的檔案和目錄,並發出 "Select items to delete>>" 提示。當提示字元以雙個 >> 結尾時,您可以進行多項選擇,項目之間用空格或逗號分隔。您也可以使用範圍,例如 "2-5 7,9" 可選擇清單中的第 2,3,4,5,7,9 項。如果範圍中的第二個數字省略,則會選取剩餘的所有項目,例如 "7-" 可選擇清單中的第 7,8,9 項。您可以輸入 * 來選擇全部。同樣地,當您對篩選結果滿意後,按下 ENTER 鍵(輸入為空)即可返回主選單。

ask each(逐一詢問)

這將開始清理程序,您必須逐一確認以刪除每個項目。請注意,此操作的效率不如上述兩種操作。

quit

此選項讓您在不進行任何清理的情況下退出。

help

顯示互動式 git-clean 的簡要用法。

組態設定 (CONFIGURATION)

本節中此行以下的內容是從 git-config[1] 文件中選擇性包含的。內容與該處找到的內容相同

clean.requireForce

一個布林值,設定為 true 可使 git-clean 除非提供 -f 參數,否則拒絕刪除檔案。預設值為 true。

參見

GIT

git[1] 套件的一部分