English ▾ 主題 ▾ 最新版本 ▾ git-check-ignore 最後更新於 2.52.0

名稱

git-check-ignore - 除錯 gitignore / 排除檔案

概要

git check-ignore [<options>] <pathname>…​
git check-ignore [<options>] --stdin

描述

對於透過命令列或透過 --stdin 從檔案提供的每個路徑名稱,檢查該檔案是否被 .gitignore(或排除機制的其他輸入檔案)排除,若被排除則輸出該路徑。

預設情況下,已追蹤的檔案不會被顯示,因為它們不受排除規則約束;但請參閱 '--no-index'。

選項

-q
--quiet

不輸出任何內容,僅設定結束狀態。這僅適用於單一路徑名稱。

-v
--verbose

不只列印被排除的路徑,對於每個符合排除模式的路徑,同時列印出該排除模式與路徑。(符合排除模式通常表示路徑被排除,但如果模式以 "!" 開頭,則它是一個反向模式,符合它表示該路徑「不」被排除。)

關於排除來源內部及來源之間的優先級規則,請參閱 gitignore[5]

--stdin

從標準輸入讀取路徑名稱,每行一個,而不是從命令列讀取。

-z

修改輸出格式以供機器解析(見下文)。如果同時給定了 --stdin,輸入的路徑將以 NUL 字元而不是換行字元分隔。

-n
--non-matching

顯示未符合任何模式的給定路徑。這僅在啟用 --verbose 時才有意義,否則無法區分符合模式的路徑與未符合模式的路徑。

--no-index

執行檢查時不查看索引。這可用於除錯為什麼某個路徑被(例如 git add .)追蹤且未按使用者預期被規則忽略,或者在開發包含反向模式以符合先前用 git add -f 加入的路徑時使用。

輸出

預設情況下,任何符合忽略模式的給定路徑名稱都將被輸出,每行一個。如果沒有模式符合給定路徑,則不會為該路徑輸出任何內容;這意味著該路徑不會被忽略。

如果指定了 --verbose,輸出將是一系列如下格式的行

<source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>

<pathname> 是正在查詢的檔案路徑,<pattern> 是符合的模式,<source> 是該模式的來源檔案,<linenum> 是該模式在來源檔案中的行號。如果模式包含 "!" 前綴或 "/" 後綴,它們將被保留在輸出中。當參照由 core.excludesFile 設定的檔案時,<source> 將顯示為絕對路徑;當參照 .git/info/exclude 或目錄層級的排除檔案時,則顯示為相對於儲存庫根目錄的路徑。

如果指定了 -z,輸出中的路徑名稱將以 null 字元分隔;如果同時指定了 --verbose,則使用 null 字元取代冒號和水平定位字元(HT)

<source> <NULL> <linenum> <NULL> <pattern> <NULL> <pathname> <NULL>

如果指定了 -n--non-matching,未符合的路徑名稱也將被輸出,此時除 <pathname> 外,每個輸出記錄中的所有欄位都將為空。這在非互動式執行時很有用,檔案可以遞增地串流傳輸到長時間執行的 check-ignore 處理序的 STDIN,而對於這些檔案中的每一個,STDOUT 都會指出該檔案是否符合模式。(如果不使用此選項,將無法區分「某個檔案沒有輸出」是因為它未符合任何模式,還是因為輸出尚未產生。)

緩衝行為如 git[1]GIT_FLUSH 選項所述。呼叫者有責任避免因填滿輸入緩衝區或從空的輸出緩衝區讀取而導致的死鎖。

結束狀態

0

提供的一個或多個路徑被忽略。

1

提供的路徑均未被忽略。

128

發生了嚴重錯誤。

GIT

git[1] 套件的一部分