2016-08-25 23 views
2

這看起來很簡單,但我有困難的時候理解下面的命令之間的區別:git add -n --ignore-missing實際上做了什麼?

git add -n 
and 
git add -n --ignore-missing 

我相信我明白「混帳添加-n」確實在這個意義上,它是一個幹運行「git add」,這意味着它會告訴用戶什麼樣的文件更改將被添加到暫存區域(索引),而不會實際添加任何內容到臨時區域。我讀了下面的描述中online git documentation「混帳添加-n」命令:

-n
--dry運行

不會實際添加文件(縣),只是展示如果它們存在和/或將被忽略。

通過「將被忽略」我假設如果「git add -n」沒有顯示它將對存在的文件做什麼,那麼該文件將被「忽略」。我還沒有想出一個情況,即命令會直接顯示一個文件將被忽略......但是。請注意,過去幾周我一直在與Git合作。

現在,我的困惑與「 - 忽略失蹤」下面的描述開始:

- 忽略失蹤

此選項只能與--dry運行一起使用。通過使用此選項,用戶可以檢查給定文件 是否會被忽略,無論它們是否已經存在於工作 樹中。

「...用戶可以檢查是否有任何給定的文件將被忽略」......但是,我認爲這就是「git add -n」本身所做的一切。我建立了一個存儲庫,其中所有匹配* .log的文件都將被忽略。然而,我沒有看到「git add -n」提到任何帶有該擴展名的文件,除非它已經是存儲庫的一部分。 「git add -n --ignore-missing」也是如此。

我一直在拼命尋找一種方式,這個選項提供了與「git add -n」的常規用法不同的地方。我有一種感覺,我對「git add -n」的理解部分或完全不正確,這讓我很擔心。所以我希望有人能夠詳細說明並強調我出錯的地方。感謝所有能夠幫助的人!

回答

2

你可以git add -n --ignore-missing some.filename,如果some.filename被gitignore策略忽略,你會得到「下面的路徑被你的一個.gitignore文件忽略」消息和一個非零的退出狀態。這工作,即使實際上沒有一個名爲some.filename的文件。如果沒有--ignore-missing,您會收到關於some.filename不存在的錯誤消息。

+0

無論我運行'git add -n --ignore-missing some.filename'還是'git add -n some.filename',我都會得到相同的結果。它可以是配置中的東西嗎? – Dash

+0

通過「相同的結果」,我的意思是我得到'以下路徑被你的.gitignore文件之一忽略:'這兩個命令的輸出 – Dash

+0

我的錯誤是在一個確實存在的文件上嘗試它。如果沒有,是的,你是絕對正確的。 – Dash

相關問題