2013-05-14 39 views
3

我的根目錄中有一個.gitignore文件。規則是忽略所有.txt文件。在我的根目錄中,我有兩個文件,分別是something.py和anything.txt。瞭解.gitignore

我在編寫.gitignore後創建了anything.txt文件。

所以,現在,當我發出git add *(在對這兩個文件進行更改之後),它會引發以下消息:以下路徑被您的.gitignore文件anything.txt忽略。致命的:沒有文件添加。

但是,當我明確地添加something.py,它被添加..

那麼,爲什麼沒有得到與git的補充,補充的.py *,即使它不在的.gitignore文件中提及?

+0

通常有人用'git的補充,而不是.'混帳的'加*',不產生這樣的錯誤。 – 1615903 2013-05-14 07:26:44

回答

1

這正是它的工作原理:.gitignore是說git的簡單機制,哪些文件類型不應該添加到您的存儲庫。

例如,添加*.txt表示您不想添加文本文件。 但它沒有提及任何有關python文件的內容,它們將像往常一樣添加。

您可以使用git add -f file_or_dir覆蓋.gitignore。 如果你嘗試git add something.txt而.txt被忽略,git會警告你並拒絕這麼做,除非你使用-f

使用git add *將嘗試添加在當前目錄下,包括.TXT所有文件,這將導致警告。您可以使用git add .來避免這種情況。

3

當你鍵入命令git add *,它是由你的shell擴展以匹配當前目錄下的所有非隱藏文件。在你的情況下,它變成了git add something.py anything.txt

Git認爲你想添加一個文件(anything.txt)匹配*.txt在您的.gitignore。這就是它拋出錯誤的原因。該命令失敗並且沒有添加文件。

要添加項目中的所有文件,您不能依賴shell行爲(*擴展)。您應該使用git add -A或更高版本來執行此操作,逐個添加每個邏輯包文件。