Git
English ▾ 主題 ▾ 最新版本 ▾ 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,則輸出是一系列以下格式的行:

<來源> <冒號> <行號> <冒號> <模式> <水平索引標籤> <路徑名稱>

<路徑名稱> 是正在查詢的檔案的路徑,<模式> 是符合的模式,<來源> 是模式的來源檔案,<行號> 是模式在該來源中的行號。如果模式包含「!」前綴或「/」後綴,它將保留在輸出中。<來源> 在參考由 core.excludesFile 設定的檔案時將會是絕對路徑,在參考 .git/info/exclude 或每個目錄排除檔案時,將會是相對於儲存庫根目錄的路徑。

如果指定了 -z,則輸出中的路徑名稱會以空字元分隔;如果也指定了 --verbose,則也會使用空字元來代替冒號和水平索引標籤。

<來源> <NULL> <行號> <NULL> <模式> <NULL> <路徑名稱> <NULL>

如果指定了 -n--non-matching,則也會輸出不符合的路徑名稱,在這種情況下,除了 <路徑名稱> 之外,每個輸出記錄中的所有欄位都將為空。當以非互動方式執行時,這會很有用,以便可以將檔案逐步串流到長時間執行的 check-ignore 程序的 STDIN,並且對於每個檔案,STDOUT 都會指出該檔案是否符合模式。(如果沒有此選項,則無法判斷給定檔案的輸出不存在,是因為它不符合任何模式,還是因為尚未產生輸出。)

緩衝的運作方式如 git[1]GIT_FLUSH 選項下所述。呼叫者有責任避免由於過度填滿輸入緩衝區或從空的輸出緩衝區讀取而造成的死鎖。

退出狀態

0

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

1

沒有任何提供的路徑被忽略。

128

遇到嚴重錯誤。

GIT

屬於 git[1] 套件的一部分

scroll-to-top