2013-02-13 38 views
2

在我的回購協議,我有以下目錄結構:的Git忽略陌生感

/ 
|-dir1 
| |-file1 
| |-file2 
| |-file3 
|-dir2 
| |-file4 
| |-file5.derp 
| |-file6 
|-dir3 
    |-file7 
    |-file8 

.gitignore文件(位於根)如下:

dir2/ 
!dir2/*.derp 

然而,file5.derp永遠不會被發現git add ...

我在這裏錯過了什麼?

回答

2

嘗試的.gitignore是這樣的:

dir2/* 
!dir2/*.derp 

每gitignore手冊頁:http://www.kernel.org/pub/software/scm/git/docs/gitignore.html

如果模式以斜線結尾,則爲了以下描述的目的將其刪除,但它只會與目錄找到匹配項。換句話說,foo /會匹配目錄foo和它下面的路徑,但不會匹配常規文件或符號鏈接foo(這與pathpec在git中的工作方式一致)。

我懷疑它忽略了該目錄中的所有文件,沒有達到它將檢查使用的程度!

+0

謝謝你們兩位。我選擇拉扎羅先生的答案,因爲它也包含對在線手冊頁的引用,但兩者同樣有幫助(意味着單獨就足夠了)。 – 2013-02-14 15:20:14

1

你將不得不做這樣的:

dir2/* 
!dir2/*.derp 

在你嘗試過什麼,dir2/,顯然忽略了目錄,git會不會陷入它的取消忽略文件.derp。在上述情況下,它忽略了dir2所有的孩子,而不是dir2因爲dir2/*本身,然後你取消忽略的.derp文件