/* 和 / 与 .gitignore 上路径的最末端有什么区别?

问题描述 投票:0回答:2

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

somedirectory/*

somedirectory/

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

git gitignore
2个回答
4
投票

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

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

Git 不跟踪目录;一个所有内容都被忽略的目录就等于被忽略了。

因此没有实际差异。


3
投票

它们都会递归匹配。但您不应该使用

somedirectory/*
模式,因为它与
somedirectory/
本身不匹配。因此,如果您有一个缓存文件夹
cache/
并忽略模式
cache/*
,那么
git clean -fd
将删除
cache/
目录及其中的所有文件。

小心 IDE 的模式:) 忽略模式

.idea/*
可能会导致清除项目的所有设置。

© www.soinside.com 2019 - 2024. All rights reserved.