簡體中文 ▾ 主題 ▾ 最新版本 ▾ git-clean 上次更新於 2.45.0

名稱

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

概要

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

描述

透過遞迴地移除未被版本控制的檔案來清理工作目錄,從當前目錄開始。

通常,只有 Git 未知的刪除檔案,但如果指定了 -x 選項,則還會刪除被忽略的檔案。例如,這對於刪除所有構建產品很有用。

如果提供了任何可選的 <pathspec>... 引數,則只會影響匹配 pathspec 的路徑。

選項

-d

通常,當沒有指定 <pathspec> 時,git clean 不會遞迴到未跟蹤的目錄中,以避免刪除過多內容。指定 -d 會使其也遞迴到這些目錄中。如果指定了 <pathspec>,-d 將無關緊要;所有匹配指定路徑的未跟蹤檔案(除了 --force 下提到的巢狀 git 目錄)都將被刪除。

-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> ”。通常,當提示以單個 > 結尾時,您可以選擇其中一個選項並按回車鍵,如下所示

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

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

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

clean

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

按模式過濾

這將顯示將要刪除的檔案和目錄,並顯示“Input ignore patterns>>”提示。您可以輸入用空格分隔的模式來排除要刪除的檔案和目錄。例如,“*.c *.h”將排除以“.c”和“.h”結尾的檔案。當您對過濾後的結果滿意時,按 ENTER(空)返回主選單。

按數字選擇

這將顯示將要刪除的檔案和目錄,並顯示“Select items to delete>>”提示。當提示以雙 >> 結尾時,您可以選擇多個專案,用空格或逗號分隔。您也可以指定範圍。例如,“2-5 7,9”選擇列表中的 2,3,4,5,7,9。如果範圍中的第二個數字被省略,則選擇所有剩餘的專案。例如,“7-”選擇列表中的 7,8,9。您也可以輸入 * 選擇所有項。當您對過濾後的結果滿意時,按 ENTER(空)返回主選單。

逐個詢問

這將開始清理,您必須逐個確認才能刪除專案。請注意,此操作不如上述兩個操作高效。

quit

這允許您在不執行任何清理的情況下退出。

help

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

配置

本節中以下所有內容均從 git-config[1] 文件中選擇性地包含。內容與彼處相同:

clean.requireForce

一個布林值,用於使 git-clean 在未提供 -f 的情況下拒絕刪除檔案。預設為 true。

另請參閱

GIT

Git[1] 套件的一部分