当前位置: 首页 > news >正文

.gitignore 的匹配规则

.gitignore 是使用 Git 的日常开发时一个非常常见的文件。它负责告诉 Git 哪些文件或目录应当被忽略,不被加入版本控制。必须掌握。

基本规则

  • .gitignore 文件对其所在目录以及所有子目录生效。

  • 每行一条规则:

    • 空行:无意义。
    • # 开头:注释。
  • 匹配的是相对路径,相对于 .gitignore 所在目录的路径。

路径匹配规则

不带 / 的规则

log

匹配任意层级下名为 log 的文件或目录:

  • log
  • app/log
  • src/debug/log

/ 开头的规则

/log

仅匹配当前目录下的 log,不会影响子目录:

  • 匹配:./log
  • 不匹配:./src/log

如果 .gitignore 在仓库根目录,则仅忽略根目录的该项。

/ 结尾的规则(指定目录)

cache/

表示忽略 cache 目录及其全部内容:

  • 匹配:cache/, cache/tmp/a.txt
  • 不匹配:cache.log

通配符模式

* 匹配任意字符(不含 /

*.log

匹配所有 .log 文件:

  • a.log
  • error.log
  • dir/debug.log

? 匹配单个字符(不含 /

config?.json
  • 匹配:config1.json, configA.json
  • 不匹配:config10.json

[] 匹配字符集合

file[0-9].txt
  • 匹配:file0.txt ~ file9.txt
  • 不匹配:file10.txt

** 的强大跨目录匹配

** 可以匹配任意多层目录。

logs/**/debug.log

匹配:

  • logs/debug.log
  • logs/a/debug.log
  • logs/a/b/c/debug.log

常用写法:

**/temp/
**/*.log

含义分别为:所有层级下的 temp 目录;所有层级下的 .log 文件。

取反规则:! 用于“取消忽略”

.gitignore 中,以 ! 开头的规则表示 例外,即“不忽略某些文件”。

示例:

*.log
!important.log

表示忽略所有 .log,但保留 important.log

注意两点:

  1. 取反规则只有在前面已被忽略的前提下才有效。
  2. 若目录本身被忽略,则目录内部的文件不能通过 ! 被“救回”:

错误示例:

cache/
!cache/keep

keep 无法被恢复,因为 cache/ 整个被忽略。

正确示例:

cache/*
!cache/.gitkeep

匹配顺序与优先级

  • .gitignore 从上到下依次处理规则。
  • 后面的规则会覆盖前面的规则。

示例:

*.log          # 忽略所有 .log
!main.log      # 保留 main.log
/debug/main.log  # 再次忽略 debug 目录下的 main.log

多个 .gitignore 配合使用

Git 会综合以下来源的忽略规则:

  • 仓库根目录的 .gitignore
  • 子目录中的 .gitignore
  • 全局 Git 忽略文件(如 ~/.config/git/ignore
  • Git 内置忽略(如 .git/info/exclude)

路径始终相对当前 .gitignore 解析。

常见项目的 .gitignore 示例

Node.js / 前端项目

node_modules/
dist/
build/*.log
npm-debug.log*
yarn-debug.log*.env
.env.local

Python 项目

__pycache__/
*.py[cod]
venv/
.env
*.sqlite3
http://www.zskr.cn/news/81948.html

相关文章:

  • 0_C++的基础语法(上)
  • Codeforces Round 1069 (Div. 2)
  • 第51天(中等题 数据结构)
  • 对《AI元人文构想:从“伦理规范”向“技术合标”的范式扩展》的评价与展望(深化版)
  • 网络故障具体排错
  • S7-PLCSIM Advanced V6.0同网段不同电脑之间网络配置
  • 从“能用”到“卓越”:7个实战技巧提升C#代码质量
  • 论中国人学英语与LLM
  • xshell 备份配置
  • 借助 AI Ping 的 Kimi-K2-Thinking 与 ClaudeCode 的加解密工具开发
  • CAD技巧
  • 2025 最新玻璃钢防腐厂家 TOP5 评测!技术创新 + 工程实证权威榜单发布,赋能工业设施长效防护生态 - 全局中转站
  • 2025医疗器械全球法规注册咨询辅导选择评测报告 - 优质品牌商家
  • 嵌入式原理图设计基础:电源/复位/时钟/IO接口电路全解析
  • Yarn vs npm:现代前端包管理器的深度对比
  • 在 RTX 5070 + WSL 上使用 VGGT 替代 COLMAP 加速 3DGS 训练 - 天马行空
  • 《Ai元人文构想:黑箱之渡,白箱之锚——大行为模型践行意义行为原生》及其相关的分析稿与研究稿的阐述
  • Maven介绍安装与IDEA应用(JavaWeb)
  • 苏州装修公司合作知名建材品牌全解析:本土零增项标杆领衔,实力派闭眼选 - 品牌测评鉴赏家
  • 栈的快速入门
  • 【Cache缓存】基本概念 - 实践
  • 苏州装修性价比大揭秘!这些公司省钱又省心 - 品牌测评鉴赏家
  • Alientech KESS3 Slave Marine PWC Bench-Boot Protocol Activation for Mechanics Owners
  • Cell | 本周最新文献速递
  • 苏州二手房装修公司怎么选?这5家口碑好、避坑指南请收好 - 品牌测评鉴赏家
  • 苏州厂房装修哪家好?2025实力派榜单与避坑指南(附全维度筛选攻略) - 品牌测评鉴赏家
  • 贪心算法
  • 苏州装修公司前十强攻略:口碑、性价比、设计力全解析(2025避坑指南) - 品牌测评鉴赏家
  • 苏州装修哪家强?口碑榜单大曝光!盛世和家登顶第一! - 品牌测评鉴赏家
  • 达梦数据库创建用户