.gitignore文件可能我们一般不会太在意,或者去编辑他。但是其实其中有很多规则。

一.直接写一个文件名,也就是一串英文。如下:dist

所有名叫dist的文件和文件夹都会被匹配,无论被埋的多深。

二.带斜杠,有3个位置,前/中/后

斜杠表示,从当前.gitignore文件所在位置出发。

1.前的时候:

 也就是同级目录下的dist,当然也可能是文件夹和文件。

把.gitignore移到b文件下,效果如下。

 2.中间的时候

也就是找到a目录下的dist文件或者文件夹了。

3.末尾的时候

 

表示只匹配名为dist 的文件夹。其中a下面的dist文件夹被排除了,但是b下面的dist文件没有。

三。功能符号的使用

1.星号*

*表示除斜杠外的所有,其中1.jpg和2.jpg全被被排除了。

那什么叫排除斜杠呢,如下例子。

其中a文件夹下面的1.jpg没有被排除。原因是:

因为*不匹配斜杠

而1.jpg的完整路径是:a/dist/1.jpg         

而上面写的是a/*.jpg,其中的斜杠匹配不了。

2.两个星号:**

那如果要匹配a目录下所有的jpg,不管埋的多深。这里需要两个星号:**,

 如上,表示a目录下无论多少层级都可以匹配了。

3.问号:?

 

问号:?表示一个字符。其中,名叫1.jpg的文件被忽略,但是11.jpg就不会

反言之,两个问号表示两个字符

 

 4.正则表示

[0-9]在这里表示一个字符,取值为0-9,因此11.jpg就不行,a.jpg也不行。

 5.感叹号:!

这里我全匹配了a下面的所有带有后缀的文件,但是!表示除了。那所以1.txt在前面的规则基础上不被排除了。

这样做的还是很有实际意义的。

因为如果这个a目录是一个静态资源,不用感叹号去排除其中的一个文件,那整个目录都不会被跟踪,在服务器上,就没有a这个目录,有可能报错。

那如果我们需要这个目录,但是不要其中的图片等资源文件。

6.补充 .keepgit

一般做法是:

在a目录下,创建一个.keepgit文件,然后在.gitignore中写。这样就保证服务器中不至于没有a目录。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐