2014-07-25 107 views
2

當我鍵入爲什麼不會「git add *」添加「git status」所表示的未分檔文件?

git add * 

好像有添加任何文件,但是當我做

git status 

它表明是不分級的文件,它的行爲。如圖所示,我可以通過手動輸入名稱來對其進行分類,但在相同情況下需要相當長的一段時間。

我的問題是,爲什麼在這種情況下,我不能只輸入「git add *」來添加unstaged文件,我應該如何解決這個問題?先謝謝你。

此圖片顯示我遇到http://i.imgur.com/YjqZ85P.png

+0

鍵入命令「git log --graph --decorate」並顯示圖像 –

+1

您可以顯示「 .gitignore'? – gravetii

+0

'git add -u'或'git add -A'有效嗎? –

回答

5

如果您要添加的所有文件,不要使用行爲「*」(這是由shell解釋)

git add . 

git add -u將增加更新的文件。 git add -A .結合了兩者。
請參閱「What's the difference between git add . and git add -u?
也是「Difference between 「git add -A」 and 「git add .」」:

.表示命令在當前的子目錄,而不是整個工作樹進行操作。

如果您想知道文件是否被忽略:git check-ignore -v -- yourFile


正如在「What's the difference between git add * and git add ., if any?」解釋說:

git add *將增加所有都是*git add .外殼擴展的結果會告訴混帳添加當前目錄的路徑。

git add *將不會添加以.開頭的路徑,因爲*的外殼擴展將這些路徑視爲「隱藏」路徑。

torek解釋in the comments爲什麼 '*' 在這個特殊的情況下失敗:

在這種特殊情況下

git add *成爲

git add Bootstrap afile bfile ... index.php main.js ... zfile 

或一些這樣的,和git add *以一個胖子停下來人錯誤因爲你告訴它:

  • 「不通過.gitignore添加Bootstrap」,並
  • 「不通過顯式路徑添加引導」

它不知道該服從,所以它什麼都不做。

+0

另外使用'git add -u'來添加所有更新的文件和'git add -A'來添加所有文件,甚至是未跟蹤的文件和刪除文件。 +1檢查忽略。 –

+0

這樣做有一段時間的作品。你能否更準確地解釋這段時間的含義?例如,我通過「*」添加了所有未分離的更改。謝謝。 – Connorelsea

+0

有人可以解釋。,-u和-a之間的區別。謝謝!這對我來說真的很有幫助。 – Connorelsea

0

檢查您是否真的要忽略目錄Bootstrap/,您認爲該目錄位於您的.gitignore中。另外,正如@VonC在他的回答中提到的,將當前目錄添加到臨時區域的正確方法是git add .

相關問題