簡體中文 ▾ 主題 ▾ 最新版本 ▾ git-check-ignore 上次更新於 2.43.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> 是該源中模式的行號。如果模式包含 “!” 字首或 “/” 字尾,它們將在輸出中保留。<source> 在引用 core.excludesFile 配置的檔案時將是絕對路徑,在引用 .git/info/exclude 或每個目錄的排除檔案時將是相對於倉庫根目錄的路徑。

如果指定了 -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] 套件的一部分

scroll-to-top