2014-01-25 61 views
0

編輯:做下面的步驟實際上會重現行爲。是的,該文件名爲stuff.txt,並且文件名中沒有以.開頭。當我做echo *時,確實打印stuff.txt爲什麼不「git add *」在根目錄中添加文件?

命令git add *一般類似於git add .,但有一個主要例外:git add *不會在Git存儲庫的根目錄中添加文件。它不會添加新文件(??)或修改現有文件(M)。以下是重現所需的步驟:

mac$ mkdir myrepo 
mac$ cd myrepo 
mac$ git init 
mac$ touch stuff.txt 
mac$ git add * 
fatal: no files added 

mac$ git status -s 
?? stuff.txt 
# It looks like 'git add *' totally dropped the ball. 

mac$ git add . 
# Nothing prints. Success? 
mac$ git status -s 
A stuff.txt 
# Yes, success. 

任何想法是什麼問題? git add *工作正常,只要添加或修改的文件位於子目錄中,例如myrepo/mydir/。該問題僅出現在存儲庫頂層的文件中。

我的設置:
的Mac OS X 10.9.1小牛
Git版本1.8.3.4(蘋果的Git-47)
我得到那個版本的Git通過安裝蘋果的Xcode。
蘋果終端版本2.4(326)

我應該指出,我純粹是出於好奇。使用git add .是100%令人滿意的解決方法。

+0

這是離奇的。 '*'與Git無關,它應該由shell擴展。 –

+2

該文件實際上是否調用了'stuff.txt'或者它的名字是以'.'開始的嗎? – Mat

+0

[gitignore - fatal:沒有添加文件]的可能的重複(http://stackoverflow.com/questions/12084227/gitignore-fatal-no-files-added) –

回答

1

正如Mat的評論暗示的,*不匹配以.開頭的任何內容。這是shell的工作方式(和git沒有關係)。你可以在你的shell中運行echo *來測試。

要匹配點文件,您必須使用.[!.]*。 (使用echo .[!.]*進行測試。)使用簡單.*也將匹配...,您不想使用git add

相關問題