news 2026/5/1 23:44:32

.gitignore文件解读

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
.gitignore文件解读

下面是一个.gitignore文件,我们将会对这个文件里的内容进行分类解读,通过本文,你将可以根据需要撰写自己的.gitignore文件。

# Node.js and frontend-related files node_modules/ dist/ *.log *.env yarn.lock package-lock.json .vscode/ .idea/ *.tsbuildinfo # JetBrains IDEs (e.g., IntelliJ IDEA, PhpStorm, WebStorm) .idea/ # OS generated files .DS_Store Thumbs.db # Backend related files *.iml *.jar *.war *.ear *.class # Maven mvnw mvnw.cmd

.gitignore文件 是用来让 Git 自动忽略那些不需要提交到代码仓库的文件 /和文件夹的工具。只要用 Git 管理项目,从项目创建时就要加 .gitignore —— 因为项目里一定会有不需要共享给团队或者提交到仓库的文件。比如说一些环境配置文件、编译产生的文件、系统文件、涉及隐私的文件。

一、斜杠/

  1. 结尾带斜杠(xxx/:仅匹配「文件夹」,不匹配同名文件(比如不会误忽略叫node_modules的文件);
  2. 开头带斜杠(/xxx/:限定「根目录」,非根目录的同名文件夹不匹配;
  3. 无斜杠(node_modules:既匹配文件夹,也匹配同名文件,且匹配所有层级(不推荐,容易误匹配)。
写法匹配范围举例(项目结构)
node_modules/匹配所有层级下的node_modules文件夹(不管在根目录/子目录)根目录node_modules/frontend/node_modules/都会被忽略
/node_modules/仅匹配根目录下的node_modules文件夹只忽略node_modules/,不忽略frontend/node_modules/
frontend/node_modules/仅匹配frontend子目录下的node_modules只忽略frontend/node_modules/,不忽略根目录/其他目录的
node_modules匹配所有层级下的node_modules文件夹和文件夹(不管在根目录/子目录)根目录node_modules/frontend/node_modules/frontend/node_modules.txt都会被忽略

这份.gitignore配置覆盖了文件后缀、文件夹、特定文件名三类匹配规则,核心遵循 Git 官方的.gitignore匹配语法,我按「规则类型+原理+生效范围」拆解,帮你彻底理解每一行的匹配逻辑:

二、 「后缀匹配」:*.xxx

*是「通配符」,匹配任意字符(除路径分隔符/),*.xxx表示「所有层级下后缀为.xxx的文件」。
例如:

配置行匹配原理生效范围
*.log*匹配任意文件名前缀,.log固定后缀 → 匹配所有.log日志文件项目所有目录(根目录/子目录都算)
*.env匹配所有.env环境配置文件(比如根目录.envfrontend/.env所有层级
*.tsbuildinfo匹配 TypeScript 编译生成的.tsbuildinfo文件(如frontend/*.tsbuildinfo所有层级

⚠️ 关键:*.xxx不会匹配「文件夹」(比如不会误忽略名为test.log的文件夹),仅匹配文件。

三、 「精确文件名匹配」:无通配符、无/

直接写文件名(无通配符、无/),表示「匹配所有层级下同名的文件或文件夹」。
例如:

配置行匹配原理生效范围
yarn.lock精确匹配名为yarn.lock的文件(根目录/frontend 下的都算)所有层级
package-lock.json精确匹配 npm 生成的package-lock.json文件(任意目录下)所有层级
mvnw精确匹配名为mvnw的文件(根目录/backend 下的都算)所有层级

⚠️ 注意:这类规则会匹配文件夹(比如如果有个yarn.lock/文件夹,也会被忽略),如果只想匹配文件,可加后缀限定(但这类文件名本身是固定文件,无需额外处理)。

四、 「文件夹匹配」:xxx/

结尾带/是「文件夹专属匹配规则」,表示「匹配所有层级下名为xxx的文件夹」,不会匹配同名文件。
例如:

配置行匹配原理生效范围
.idea/匹配所有层级下的.idea文件夹(JetBrains IDE 生成的配置目录,如根目录/.idea、frontend/.idea)所有层级

⚠️ 补充:如果写成/\.idea/(开头加/),则仅匹配「根目录下的.idea文件夹」,子目录的.idea不会被忽略;你这里写的.idea/是全局匹配,更符合实际需求(所有 IDE 配置目录都该忽略)。

五、 「系统生成文件」:精确文件名

这类是不同操作系统自动生成的无用文件,用「精确文件名」匹配,覆盖所有层级。
例如:

配置行匹配原理生效范围
.DS_Store匹配 macOS 系统生成的文件夹配置文件(任意目录下的.DS_Store所有层级
Thumbs.db匹配 Windows 系统生成的缩略图缓存文件(任意目录下的Thumbs.db所有层级

补充:验证规则是否生效的小技巧

如果不确定某行规则是否匹配目标文件,可执行 Git 命令验证:

# 检查根目录的 .idea 文件夹是否被忽略gitcheck-ignore -v .idea/# 检查 frontend 下的 node_modules 是否被忽略(如果加了 node_modules/ 规则)gitcheck-ignore -v frontend/node_modules/
  • 输出「.gitignore:行号:规则 目标路径」→ 规则生效;
  • 无输出 → 规则未匹配,需调整写法。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 23:48:09

实测3款论文降ai神器,手动+工具一键搞定降AIGC率!

最近毕业季,后台私信简直要炸了。很多同学都在哭诉:明明是自己一个字一个字码出来的论文,结果aigc降重检测结果竟然高达50%甚至70%以上。别慌,这其实是很多学生和研究者都会遇到的普遍问题。只要搞懂了原理,掌握正确的…

作者头像 李华
网站建设 2026/5/1 0:23:02

GNSS 形变监测系统:扼流圈 GNSS 监测站

提问:“北斗 GPS 双模定位 差分 RTK 技术”,具体精度能达到多少?对边坡、大坝监测来说意味着什么?​小助手支招:毫米级精准捕捉,隐患早发现早处置!系统通过北斗、GPS 多卫星系统融合定位,搭配差分 RTK 技术(基准站…

作者头像 李华
网站建设 2026/4/30 20:11:03

Java集合-Set讲解

目录一、集合框架层次结构二、Collection集合1、Set集合1、HashSet2、LinkedHashSet3、TreeSet4、ConcurrentSkipListSet5、CopyOnWriteArraySetJava 集合框架(Collections Framework)是 Java 中用于 存储和操作数据组的重要架构。它提供了一组接口、实现…

作者头像 李华
网站建设 2026/4/30 9:46:47

Qwen3-VL-30B-FP8:高效多模态模型新突破

Qwen3-VL-30B-FP8:高效多模态模型新突破 在视觉语言模型迈向“看得懂、想得深、用得动”的今天,如何在不牺牲性能的前提下大幅降低部署成本,成为工业界和学术界共同关注的焦点。通义千问团队最新发布的 Qwen3-VL-30B-FP8 正是这一挑战下的关键…

作者头像 李华
网站建设 2026/5/1 0:37:02

Kotaemon智能体框架支持C++和Go语言插件开发?技术细节揭秘

Kotaemon智能体框架支持C和Go语言插件开发?技术细节揭秘 在企业智能化转型加速的今天,构建一个既能理解复杂业务逻辑、又能稳定运行于高并发环境的对话系统,已成为AI工程落地的核心挑战。传统聊天机器人往往困于“问答即检索”的简单范式&am…

作者头像 李华
网站建设 2026/4/30 23:48:10

NPM安装Express中间件处理TensorRT请求队列

构建高性能AI服务:基于Express中间件与TensorRT的请求队列处理 在如今的AI应用开发中,一个常见的挑战是——如何让前端API稳定地对接高吞吐、低延迟的深度学习推理后端?尤其是在面对突发流量时,直接将客户端请求打到GPU服务上&…

作者头像 李华