gitignore匹配规则你必须要会使用
目录:
一、概述
1.书写规则
二、匹配规则
1.直接写名称
2.带斜杠
3.*
4.?
5.!
字数:大约800字
一、概述
.gitignore 是一个用于指定哪些文件或目录应该被 Git 忽略的规则文件。当我们指定之后,就不会提交内容到仓库内啦!我们来看看它的匹配规则
1.书写规则
每一个匹配规则占据一行。 不能多个匹配占据一行。
二、匹配规则
1.直接写名称
dist
当直接写匹配的名称时,它会匹配当前.gitignore所在项目、文件夹下所有的dist文件夹或文件 可以发现,不管是文件还是文件夹都会被匹配,而且不只是第一层文件夹,文件夹下的文件夹/文件都可以匹配到。
2.带斜杠
1.斜杠在前面
这个时候,它就会去匹配从.gitignore文件所在的位置出发,去找紧挨着目录层级的文件/文件夹 所以上面图中只会匹配到一个。如果我把.gitignore位置移动,再来看看,它就是这样了。
2.斜杠在中间
bash
src/dist
同样的,它还是会从当前.gitignore所在位置开始去匹配。
3.斜杠在后面
dist/
当斜杠在后面的时候,其实和上面直接写名称没有什么太大区别,主要是斜杠在后面表示匹配文件夹,而不带斜杠时候,是匹配文件夹/文件。
3.*
*号匹配的是任意字符,但是斜杠/除外。例如: 这个时候,它匹配的是所有的jpg文件。但是如果我加上斜杠。
dist/*.jpg
会发现,都没有匹配到,为什么,因为dist下面的jpg图片不存在,可能你看见dist下面有个2.jpg,但是它的完整路径是dist/imgs/2.jpg。所以无法匹配。
如果我就是要匹配,那我怎么办呢?
arduino
dist/**/*.jpg
这样就可以了,为啥,之前我们说过,* *表示匹配所有文件/文件夹。这里就是匹配,dist下面所有的文件夹/文件。
4.?
?号表示匹配的是字符。就拿刚才那个来看。
arduino
dist/**/?.jpg
会发现,33.jpg没有被匹配上,为什么,因为33是两个字符,你如果要匹配两个,那就来两个??。 不过这样之后,一个字符的就无法匹配啦。
5.!
当我们有个文件夹里面,基本上所有的文件都要让它被忽略时候。只有某个文件需要提交时候。例如 这里我把a文件夹下所有的都忽略啦,但是a文件夹下面的文件夹除啦config.js我需要提交。那怎么办呢
css
src/**/*.*
!src/**/config.js
这个时候!就用到了,就是用来排除的,也就是非的意思。
到这里,基本上常用的就是这些啦。🎉🎉🎉🍺🍺🍺👍👍👍