【git】.gitignore 个人总结

文章目录

  • [1. 简介](#1. 简介)
  • [2. 格式](#2. 格式)
  • [3. 参考](#3. 参考)
    • [1. 文件名](#1. 文件名)
    • [2. *.后缀](#2. *.后缀)
    • [3. ?.后缀](#3. ?.后缀)
    • [4. \[\]](#4. [])
    • [5. \](#5. )
    • [6. **](#6. **)
    • [7. /](#7. /)
    • [8. !](#8. !)

1. 简介

.gitignore是一个用于指定Git版本控制系统忽略特定文件或文件夹的配置文件。当我们在项目中添加文件并想要将它们纳入到版本控制中时,有时我们也会有一些不希望纳入版本控制的文件,比如编译生成的文件、日志文件、配置文件、临时文件等。这种情况下,我们可以在项目根目录下创建一个名为.gitignore的文件,列出需要忽略的文件和文件夹的规则,Git会根据这些规则来判断哪些文件应该忽略。

2. 格式

bash 复制代码

匹配文件名

bash 复制代码
* 	:	匹配0或多个字符
?	:	匹配1个字符
[]	:	匹配列表
\	:	转义字符

匹配文件夹:

bash 复制代码
**	:	匹配多级目录,0或多级目录

其他:

bash 复制代码
/	:	只匹配根目录下文件或者文件夹

空格	: 不影响,分隔段落而已
#	:	注释

!	:	排除后的文件,被再次显示可被跟踪

remark:

  1. 可以组合使用的,有些是用于控制文件夹,有些是用于控制文件
    如/*.log 忽略根目录下所有a.log b.log c.log文件
    如/abcd.log 忽略根目录下ab.log ac.log ad.log 文件

3. 参考

测试用的工程结构

bash 复制代码
.
├── a
│   ├── a
│   │   ├── a
│   │   │   └── a.log
│   │   └── b
│   │       ├── ab.log
│   │       ├── ac.log
│   │       ├── a.log
│   │       └── b.log
│   └── b
├── ab.log
├── ac.log
├── a.log
├── b
│   └── log
└── b.log

1. 文件名

bash 复制代码
a.log		:	匹配所有目录下的所有a.log文件
bash 复制代码
a.log
a/a/a/a/a.log

2. *.后缀

bash 复制代码
*.log		:	匹配所有目录下的所有*.log文件
bash 复制代码
a.log
b.log
a/a/a/b/a.log
a/a/a/b/b.log
...

3. ?.后缀

bash 复制代码
?.log	:	匹配所有目录,只匹配文件名单个字符文件
bash 复制代码
匹配:
a.log
b.log
a/a/b/a.log
a/a/b/b.log
不匹配:
ab.log
ac.log
a/a/b/ab.log
a/a/b/ac.log

4. \[\]

bash 复制代码
a[bc].log	:	匹配所有目录,只匹配文件名ab.log ac.log文件
bash 复制代码
匹配:
ab.log
ac.log
a/a/b/ab.log
a/a/b/ac.log
不匹配:
a.log
b.log
a/a/b/a.log
a/a/b/b.log

5. \

bash 复制代码
a\!c	:	转义字符
bash 复制代码
匹配:a!c

6. **

bash 复制代码
**/a.log	:	匹配多级目录下的a.log文件,一般会限定文件夹,如下:
/a/**/a.log	:	这样可以确保是在/a/目录下,匹配所有a.log
bash 复制代码
**/a.log 	:	匹配结果同 a.log,匹配所有文件夹下的a.log

/a/**/a.log	:	只匹配/a/文件夹下的所有a.log,会递归查找
匹配:
a/a/a/a.log
a/a/b/a.log
不匹配:
a.log

7. /

bash 复制代码
/a.log	:	只匹配根目录下文件
bash 复制代码
只匹配:
a.log
不匹配:
a/a/a/a.log
a/a/b/a.log
...

8. !

  1. 若已经被排除了,可以使用!再次将文件显示,用于跟踪
  2. 假设我们需要跟踪/a/a/b/a.log, 而不跟踪a/a/b/目录下的其他文件,

上图中,/a/a/b/目录下所有文件都被忽略了,即无法git status 无法显示/a/a/b/a.log文件

添加一行,排除/a/a/b/a.log文件

  1. 注意点
    3.1 如果匹配了/a/a/b/a.log文件所属的父文件夹,即/a/a/b/文件夹,则使用!不会再生效。
相关推荐
Geek-Chow15 小时前
Git 标签与发布流程:轻量标签、附注标签与签名标签
git·tags
wear工程师16 小时前
Git 冲突怎么解决:别只删标记,先看懂暂存区的 1、2、3 阶段
git
村雨遥16 小时前
覆盖提交不等于删除,这才是彻底清除 Git 历史的正确姿势
git·github
淮北49416 小时前
ubuntu22 默认输入法调整频率
运维·服务器·git·ubuntu·elasticsearch
momo_aa17 小时前
小白下载git步骤
git
dunge202618 小时前
2026 ChatGPT Plus / Pro + Codex 实战:从 0 搭一套 AI 编程项目模板,AGENTS.md + Git + 测试一次配好
人工智能·git·chatgpt
福如意如我心意2 天前
git清除仓库敏感文件并同步至远端的操作
git
Brilliantwxx2 天前
【Linux】 开发|Git 版本控制与 gdb/cgdb 调试
linux·笔记·git
.Hypocritical.3 天前
Git 全套实操|配置 /.gitignore/ 分支合并 / 冲突解决 /git stash 完整教程
git
来日方长。。。。long3 天前
Hermes Agent橙皮书共读|第三篇:保姆级实战部署|本地/VPS从零搭建Hermes
ide·git·hermes