2013-04-12 38 views
0

我似乎無法弄清楚爲什麼我的.gitignore不會忽略一個簡單的文本文件。我已經閱讀了手冊,我想我已經完成了所有必要的步驟。.gitignore無法忽略新創建的文本文件

首先,我創建了一個新的回購協議是這樣的:

C:\> mkdir test 
C:\> cd test 
C:\test> git init 

然後我創建並comitted而忽略了一個名爲junk.txt

C:\test [master]> touch .gitignore 
C:\test [master +1 ~0 -0 !]> echo 'junk.txt' >> .gitignore 
C:\test [master +1 ~0 -0 !]> git add .gitignore 
C:\test [master +1 ~0 -0]> git commit -m 'ignoring junk.txt' 

文件通過一個的.gitignore現在我會想如果我有一個名爲junk.txt的文件,git會忽略它。但是它怎麼還說這是一個沒有跟蹤的文件呢?

C:\test [master]> touch junk.txt 
C:\test [master +1 ~0 -0 !]> git status 
# On branch master 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
#  junk.txt 

我使用msysgit

C:\test [master +1 ~0 -0 !]> git --version 
git version 1.8.0.msysgit.0 
+0

你可以做乾淨的,它會被刪除。如果它在那裏,而不是添加到git中,它的狀態應該是沒有跟蹤的。 –

+1

@matt junk.txt是在.gitignore設置後添加的新文件,因此與該帖子中提到的緩存無關。我已經嘗試過rm - 緩存,它會給出錯誤,並且該文件仍然被檢測爲未跟蹤的文件 – gerrytan

+1

您可以驗證.gitignore是否包含您認爲它包含的內容?看起來你在使用Windows時輸入bash命令,這可能是你麻煩的根源。 – meagar

回答

0

Gerrytan,您使用的是不使用bash語法的系統上bash的語法。

具體而言,當你做到以下幾點:

echo 'junk.txt' >> .gitignore 

你告訴混帳忽略文件「junk.txt」 包括引號。

如果你曾經使用bash中,或任何sh兼容的shell,那麼該命令會告訴混帳忽略「junk.txt」 排除引號,因爲在那些貝殼,引號表示字邊界,但它們在cmd.exe(Windows中的標準命令行)中沒有特殊含義。

我建議你在編輯器中打開.gitignore並查看條目。

+1

.gitignore上沒有任何引號,但是我創建.gitingore的方式似乎會導致文件編碼問題 - 因此它不會被git讀取。當我使用記事本創建它時,它按預期工作。謝謝您的幫助 – gerrytan