2017-10-05 135 views
0

我正在尋找切換到git(來自Perforce)。我正在對文件進行初始添加,但由於某種原因我的文件沒有被使用。在驗證通過git status添加的文件時,我可以看到列出的文件應該被忽略。我必須錯過一些非常基本的東西。添加文件時,爲什麼我的.gitignore文件不工作?

下面是我和測試一個非常簡化的目錄結構:

d:/git/ 
    .git 
    Test/ 
     test.suo 
     bin/ 
      Debug/ 
       test.dll 
    .gitignore 

這裏是我的.gitignore文件的相關部分:

**/*.suo 
**/[Bb]in/Debug 

當添加文件,我打電話:

git add Test 

然後我驗證已添加的文件:

git status 

這表明我:

new file: Test/bin/Debug/test.dll 
new file: Test/test.suo 

我缺少什麼?爲什麼要包含這些文件?

+0

我想你可以在'.gitgnore'中寫'* .suo'和'Debug /'。 +1爲您的個人資料圖片! – juan

+0

@juan這沒有什麼區別。這些文件仍然被添加,'git status'顯示相同的輸出。 –

+0

您是否從索引或樹中刪除文件?如果這些文件仍在上演,請嘗試'git reset HEAD '。如果你犯了這些錯誤,請嘗試'git rm --cached '但要小心。 [這個答案](https://stackoverflow.com/questions/11451535/gitignore-is-not-working)可能會有所幫助。 – juan

回答

2

您最初使用PowerShell的echo $null >> .gitignore來創建該文件是個問題。這是因爲它不會創建一個完全空的文件(根本沒有字節),而是在開始時使用UTF-16小端字節順序標記(「BOM」)的文件。

正如在the comments to this answer中指出的那樣,git這樣的工具不能很好地工作,git通常希望使用無BOM的文件,通常採用UTF-8編碼。

看起來像it's actually quite hacky用PowerShell創建一個空文件。

+0

偉大的跟進馬特,+1。我最初做了一個'touch .gitignore',然後我意識到,哦,是的,Windows。謝謝! –

相關問題