gitignore匹配规则你必须要会使用

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

这个时候!就用到了,就是用来排除的,也就是非的意思。

到这里,基本上常用的就是这些啦。🎉🎉🎉🍺🍺🍺👍👍👍

相关推荐
dllmayday2 分钟前
Bootstrap三开关样式
前端·javascript·bootstrap
杨先生哦4 分钟前
【2026热端攻防系列 11/12】前端AI风控攻防实战:验证码缺陷、人机验证绕过、智能爬虫对抗与企业智能风控加固方案
前端·人工智能·笔记·爬虫·安全
CodeSheep5 分钟前
hvv员工家属爆料:老公22年入职的,普通员工,老是被误以为高薪多奖金,实际上还没配股,暂时钱没存多少,我倒是很心疼他工作辛苦。
前端·后端·程序员
IT_陈寒6 分钟前
Redis这个内存杀手坑惨了我,排查三小时发现是过期策略搞的鬼
前端·人工智能·后端
人间凡尔赛43 分钟前
React Compiler 正式落地一年:告别手动 useMemo/useCallback 的全栈实践
前端·性能优化·react
LaughingZhu1 小时前
Product Hunt 每日热榜 | 2026-08-02
前端·神经网络·react.js·搜索引擎·前端框架
90后的晨仔11 小时前
从 H5 到 uni-app:一篇写给前端小白的"翻译指南"
前端·vue.js·前端框架
陈随易11 小时前
moon,apt和yum之外linux系统命令安装新选择
前端·后端·程序员
IT小盘12 小时前
13-企业Prompt模板-角色任务约束与输出格式
java·前端·prompt
徐小夕12 小时前
开源!我用SQLite + DuckDB打造了一款可视化AI问数平台
前端·算法·github