1

在一些 .gitignore 文件中,我们可能会看到:

somedirectory/*

或者

somedirectory/

这是否意味着第一个将递归匹配,而第二个将仅匹配该目录?

4

2 回答 2

4

后者匹配目录,但忽略目录意味着忽略它的所有内容。所以它是递归的。

对于前者,* 将只匹配直接条目。但是由于它也会匹配目录并且忽略目录意味着忽略它的所有内容,它也是递归的。

Git 不跟踪目录,所有内容都被忽略的目录和被忽略一样好。

因此没有实际的区别。

于 2012-09-03T09:19:17.623 回答
3

它们都将递归匹配。但是您不应该使用somedirectory/*模式,因为它与somedirectory/自身不匹配。因此,如果您有一个缓存文件夹cache/并忽略模式cache/*,那么git clean -fd将删除cache/其中包含所有文件的目录。

注意 IDE 的模式 :) 忽略模式.idea/*会导致清除项目的所有设置。

于 2012-09-03T09:55:01.337 回答