2

在我的仓库中,我有以下目录结构:

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

我的.gitignore文件(位于根目录)如下:

dir2/
!dir2/*.derp

然而,file5.derp从来没有被git add...

我在这里想念什么?

4

2 回答 2

2

试试这样的 .gitignore :

dir2/*
!dir2/*.derp

每个 gitignore 手册页:http ://www.kernel.org/pub/software/scm/git/docs/gitignore.html

如果模式以斜线结尾,则出于以下描述的目的将其删除,但它只会找到与目录的匹配项。换句话说, foo/ 将匹配目录 foo 和它下面的路径,但不会匹配常规文件或符号链接 foo(这与 pathspec 在 git 中的一般工作方式一致)。

我怀疑它忽略了该目录中的所有文件,而没有达到使用 ! 进行检查的程度。

于 2013-02-13T17:22:30.833 回答
1

你将不得不拥有它:

dir2/*
!dir2/*.derp

在您尝试的操作中dir2/, 显然会忽略该目录,并且 git 不会进入该目录以取消忽略.derp文件。在上述情况下,它会忽略所有子级dir2而不是dir2自身,因为dir2/*然后您取消忽略.derp文件

于 2013-02-13T17:19:34.890 回答