2013-02-13 116 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文件