.gitignore 的匹配规则

news/2025/12/11 0:45:29/文章来源:https://www.cnblogs.com/ofnoname/p/19333698

.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.mzph.cn/news/997567.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无法在Debian13 VSCode中使用fcitx5输入中文

根据 https://fcitx-im.org/wiki/Setup_Fcitx_5/zh-cn 编辑下面两个文件,然后重启电脑 vim /etc/environmentXMODIFIERS=@im=fcitx GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitxvim /etc/profileexport XMODIFIERS=@im=fc…

Debian 13安装rime中文输入法

删除无关输入法,并安装fcitx5-rime sudo apt purge --autoremove fcitx* fcitx5* ibus* sudo apt install fcitx5-rime图形设置,启用输入法 安装白霜拼音输入方案和词库。重启 systemctl reboot本文来自博客园,作者…

[LabVIEW随笔-10] -基础知识3

1、列表框1.1 创建列表框列表框同简单控件一样,有“新式”、“系统”和“古典”三种不同风格。列表框控件位于“列表与表格”控件选板中列表框的外观与一般的字符串控件比较相似,列表框控件内含的数据类型是 132,它…

0_C++的基础语法(上)

今天这个C++基础语法上面部分我们就假设你有c语言基础,不会去重复讲C语言一样的内容,然后只讲算法比赛中会用到的内容,不讲类,对象之类的内容。本次不讲STL,STL部分我会放在下一篇部分讲的。恋爱可以不谈,算法不能…

linux进线程

进线程 1. 什么是进程,什么是线程,区别在那?进程是系统资源分配的基本单位,线程是程序执行的最小单位,一个进程可以包含多个线程 进程有自己独立的地址空间,每新建一个进程,系统都会给进程分配独立的地址空间,…

Codeforces Round 1069 (Div. 2)

因为各种原因,最近几天的做题量与强度有所下降,时间不多了希望未来可以更加努力,以此为戒 B 这一套的难度感觉划分的不太对,这个B题反而比C题难得多 这个B题的思维还是挺巧妙的,显然是个构造,我竟然没有想出来 异…

Old-Java类集框架随笔

结构 Map ├── HashMap │ └── LinkedHashMap ├── SortedMap (接口) │ └── TreeMap └── Hashtable (遗留类,线程安全) Collection ├── List(ListIterator可用) │ ├── ArrayList │ ├…

第51天(中等题 数据结构)

打卡第五十一天 2道中等题题目:思路:前缀和+哈希表,同余定理 代码: int subarraysDivByK(vector<int>& nums, int k) {unordered_map<int,int> cnt; // 哈希表int ans = 0, s = 0; // 答…

对《AI元人文构想:从“伦理规范”向“技术合标”的范式扩展》的评价与展望(深化版)

迈向“全域可靠性”的工程宣言:一篇深度评述 对《AI元人文构想:从“伦理规范”向“技术合标”的范式扩展》的评价与展望 引言:一次理论-工程范式的关键跃迁 《AI元人文构想:从“伦理规范”向“技术合标”的范式扩展…

Claude使用体验

1.使用cli版本的Claude 安装 首先安装好node和npm,直接下载即可 https://nodejs.org/en 然后安装Claude clinpm install -g @anthropic-ai/claude-code --registry=https://registry.npmjs.org/安装完成就是这样查看C…

适合 Linux 强者的方式 freertos学习

适合 Linux 强者的方式 freertos学习✅ 适合 Linux 强者的方式 Step 1:对标理解LinuxFreeRTOSpthread xTaskmutex xSemaphoresignal task notifyIRQ ISRscheduling priority👉 把 FreeRTOS 当 “没有 MMU 的 Linux”…

网络故障具体排错

还是从物理层进行排查,查看crc循环冗余校验码是否持续增加,那么可能是物理线路异常,光衰过大,光模块插入异常,查看内存,风扇,cpu等设备问题可以通过命令进行自检,如dis cpu ,dis mamary ,dis fan 然后查看二…

Git 中文文件名显示为转义码(乱码)的解决方案

问题描述 在使用 Git 时,如果文件名包含中文或其他非 ASCII 字符,执行 git status 等命令时会看到类似这样的输出: $ git status On branch main Untracked files:(use "git add <file>..." to inc…

真相:大量硬件场景 根本跑不了 Linux

真相:大量硬件场景 根本跑不了 Linux2️⃣ 真相:大量硬件场景 根本跑不了 Linux 你以后真做设备,会遇到这些情况:场景LinuxFreeRTOS成本 < 20 MCU ❌ ✅启动 < 50ms ❌ ✅512KB Flash ❌ ✅精确定时 ⚠️ ✅…

Windows-GameBar-ErrorLog

Windows-GameBar-ErrorLog导航 (返回顶部)1. ms-gamingoverlay1.1 安装相关应用及组件 1.2 注册表关闭 1.3 注册表关闭-方式2 1.4 组策略禁用2. Xbox Game Bar2.1 xbox地区问题3. Reg-help1. ms-gamingoverlay1.1 安装…

S7-PLCSIM Advanced V6.0同网段不同电脑之间网络配置

场景: 电脑A:安装了TIA Portal V19和S7-PLCSIM Advanced V6.0。 电脑B:使用wpf上位机通过ModbusTcp/S7与S7-PLCSIM Advanced V6.0通信。 两台电脑IP为同网段,需要将S7-PLCSIM Advanced V6.0仿真的PLC的IP设置为同一…

记录一些波波的话

记录一些波波的话2025.12.10 关于学和玩 波波曰:“其实就三种,一种是前面过得很舒服,后面比较难受;第二种是把困难分成一段一段自己能接受的,平均一下;第三种就是前面过得很苦,后面就躺平了。那要我说我就偏向于…

从“能用”到“卓越”:7个实战技巧提升C#代码质量

从“能用”到“卓越”:7个实战技巧提升C#代码质量Posted on 2025-12-11 00:00 lzhdim 阅读(0) 评论(0) 收藏 举报本文将揭秘七个实战技巧,助你跨越“功能实现”到“优雅代码”的鸿沟。通过正反案例对比与技术心…

2025最新结构胶品牌推荐!国内优质结构胶权威榜单发布,资质服务双优助力高品质建筑山东结构胶服务公司推荐 - 全局中转站

引言 随着建筑行业对材料性能与安全标准的要求不断提升,结构胶作为关键粘接材料,其产品质量、耐久性与环保性成为工程建设的核心考量因素。然而,市场上产品质量参差不齐、技术参数虚标、服务体系不完善等问题依然存…

2025最新玻璃胶推荐!国内优质玻璃胶品牌权威榜单发布,资质与性能双优助力高效密封 - 全局中转站

引言 随着建筑装饰、工业制造等领域对密封材料的性能要求不断提升,玻璃胶作为关键辅材,其环保性、耐久性与适用场景适配性成为行业关注焦点。但当前市场存在产品性能参差不齐、环保指标模糊、应用场景匹配度不足等问…