Skip to content

Gitignore 的匹配规则

Published:

前言

第一种规则:直接书写单词

dist

在这种规则下,它可以匹配整个工程里边,所有名称为 dist 的目录或者是文件。

可以看到,dist 文件夹和 dist 文件已经变成灰色,它已经被 Git 排除掉了。

那么也有可能这个目录是在某一个目录的里边。可以看到,output/dist 文件夹也被排除掉了。

第二种规则:带斜杠

带斜杠的文件或文件夹存在几种情况,一种是在前面,一种是在中间,也有可能在前面和中间。

/output
output/dist
/output/disk
output/

这种情况下,它就不是针对整个工程了,而是以 gitignore 这个文件的位置出发去寻找匹配的。

/dist	 #以 gitignore 位置出发,寻找当前路径 dist 文件或文件夹

如图所示,在同级目录下的 dist 目录被排除,而第二层级的文件夹或者文件则不会。

dist/

在末尾加上一个斜杆,表示只匹配文件夹,这样一来所有的 dist 目录都会被排除。

如图所示,同级 dist 文件夹和 output/dist 文件夹被排除,但 test/dist 作为文件则不会。

output/dist/

output/dist/ 为例子,Git 会从 .gitignore 当前路径,将 output 文件夹下的 dist 文件夹排除,其他文件夹则不会被排除。

第三种规则:通配符

在上述例子中,如果我们要将所有 dist 排除掉,则可以加入:

**/dist*

如果我们只想要排除文件夹,不包括文件的话:

**/dist/

如果要指定具体的文件夹,我们还可以:

# 将 `output` 文件夹中所有的 `dist` 文件夹和文件给排除。
output/**/dist

# 将 `output` 文件夹中所有 `dist` 文件夹给排除
output/**/dist/