是 Git 版本控制工具的一个配置文件,文件名固定为 .gitignore。
一、它的核心作用是:
告诉 Git 哪些文件/文件夹不需要被跟踪(即不提交到代码仓库)。
二、为什么需要它?
-
保护敏感信息:比如你的
.env文件(存密码、密钥)、数据库文件(如db.sqlite3),不能提交到仓库泄露; -
避免冗余文件:比如虚拟环境(
.venv)、编译后的缓存(__pycache__)、IDE 配置文件(.idea),这些文件只在你本地有用,提交到仓库会占用空间、导致团队成员冲突; -
保持仓库整洁:只提交项目的核心代码(如
.py文件),让仓库更轻量、易维护。
简单说:.gitignore 是 Git 的“过滤名单”,帮你把不需要共享的文件挡在仓库外面。
三、用法
.gitignore 的写法规则其实很简单,核心是「匹配模式 + 注释」,下面用常用规则 + 例子帮你快速理解:
1. 基础规则
-
注释用
#开头:# 这是注释,不会生效
.env # 这行是有效规则(注释在后面也可以) -
直接写文件名/文件夹名:匹配项目中所有同名的文件/文件夹
.venv # 忽略所有叫.venv的文件夹
db.sqlite3 # 忽略所有叫db.sqlite3的文件 -
以
/开头:只匹配当前目录下的文件/文件夹(不会匹配子目录里的)/static/ # 只忽略「最外层目录」下的static文件夹
# 子目录里的static(比如app/static)不会被忽略 -
以
/结尾:表示这是一个文件夹(不是文件)__pycache__/ # 忽略所有叫__pycache__的文件夹(不管在哪个目录)
2. 通配符规则(常用)
-
*:匹配任意字符(但不匹配/)*.log # 忽略所有后缀为.log的文件(比如a.log、app/b.log) *.pyc # 忽略所有.pyc后缀的缓存文件
-
?:匹配单个字符test?.txt # 匹配test1.txt、testA.txt,但不匹配test12.txt
-
**:匹配任意层级的目录(包括当前目录和子目录)**/media/ # 忽略所有目录下的media文件夹(比如根目录的media、app/media)
3. 反向规则(!)
-
以
!开头:表示不忽略某个文件(用于“排除例外”)*.pyc # 忽略所有.pyc文件
!main.pyc # 但不忽略main.pyc(例外)注意:
!不能用于被父目录忽略的文件(比如先忽略了__pycache__/,再写!__pycache__/a.pyc是无效的)
4. 示例:结合你的Django项目
# 注释:忽略虚拟环境
.venv/
# 注释:忽略环境配置文件
.env
# 注释:忽略所有.log文件
*.log
# 注释:只忽略根目录下的static文件夹
/static/
# 注释:忽略所有目录下的__pycache__文件夹
**/__pycache__/
# 注释:忽略所有.pyc文件,但保留utils.pyc
*.pyc
!utils.pyc
总结:.gitignore 是“匹配模式越具体,优先级越高”,日常用 # 写注释、* 匹配后缀、/ 限定目录,基本就能覆盖90%的场景。
要不要我帮你检查下之前给你的 .gitignore




没有回复内容