簡體中文 ▾ 主題 ▾ 最新版本 ▾ 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 或每個目錄的排除檔案時,<source> 將是相對於倉庫根目錄的路徑。

如果指定了 -z,則輸出中的路徑名由空字元分隔;如果還指定了 --verbose,則空字元也用於代替冒號和硬製表符

<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] 套件的一部分