.gitignore 生成指南:按项目类型快速创建忽略规则
实用工具(更新于 2026年6月20日)
.gitignore 是什么
.gitignore 文件告诉 Git 哪些文件/目录不需要版本控制:
node_modules/ ← 忽略整个目录
*.log ← 忽略所有日志文件
.env ← 忽略环境变量文件
dist/ ← 忽略构建产物
未被跟踪的文件如果匹配 .gitignore 规则,Git 会自动跳过。已被跟踪的文件不受影响。
语法规则详解
基本模式
| 语法 | 含义 | 示例 |
|---|---|---|
*.ext |
匹配所有 .ext 文件 | *.log |
dir/ |
匹配整个目录 | node_modules/ |
file |
匹配具体文件 | .env |
** |
匹配任意层目录 | **/test |
? |
匹配单个字符 | config?.json |
[abc] |
匹配方括号内任一字符 | file[123].txt |
取反模式 !
*.log ← 忽略所有日志
!important.log ← 但保留 important.log
取反模式必须写在忽略规则之后才有效。
路径规则
/README.md ← 仅忽略根目录的 README.md
README.md ← 忽略所有路径下的 README.md
docs/*.pdf ← 忽略 docs 目录下的 PDF,不递归
docs/**/*.pdf ← 忽略 docs 所有子目录下的 PDF
常用项目模板
Node.js
node_modules/
dist/
build/
.next/
.env
.env.local
*.log
coverage/
Python
__pycache__/
*.py[cod]
*.egg-info/
dist/
.venv/
venv/
.env
.pytest_cache/
.mypy_cache/
Java / Spring Boot
target/
*.class
*.jar
*.war
.gradle/
.idea/
*.iml
application-local.yml
IDE / 编辑器
# VS Code
.vscode/
# IntelliJ IDEA
.idea/
*.iml
# macOS
.DS_Store
# Windows
Thumbs.db
使用 gitignore 工具
第一步:打开工具
访问 gitignore 工具,进入生成界面。
第二步:选择项目类型
勾选项目使用的技术栈:
- ☑ Node.js
- ☑ Python
- ☑ Java
- ☑ Vue / React / Angular
第三步:选择 IDE
勾选团队使用的编辑器:
- ☑ VS Code
- ☑ IntelliJ IDEA
- ☑ 其他
第四步:生成并下载
点击「生成」,工具自动合并所有模板,去除重复规则,生成完整的 .gitignore 文件。
第五步:放置到项目根目录
将下载的文件放到 Git 仓库根目录,确保文件名是 .gitignore(注意开头的点)。
全局 gitignore
除了项目级 .gitignore,还可以设置全局忽略规则(适用于所有仓库):
# 设置全局 gitignore 文件
git config --global core.excludesFile ~/.gitignore_global
# 编辑全局规则
vim ~/.gitignore_global
推荐全局忽略的内容:
# 操作系统文件
.DS_Store
Thumbs.db
# IDE 配置
.idea/
.vscode/
# 个人工具
.todo
全局规则适合放个人环境相关的文件,项目级规则适合放项目相关的文件。
已跟踪文件的处理
.gitignore 只对未跟踪的文件生效。如果文件已经被 Git 跟踪:
# 取消跟踪但保留本地文件
git rm --cached .env
# 取消跟踪整个目录
git rm -r --cached node_modules/
# 提交取消跟踪的变更
git commit -m "chore: update gitignore and untrack files"
--cached参数确保只从 Git 索引中移除,不删除本地文件。
常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| 规则不生效 | 文件已被跟踪 | 先 git rm --cached 取消跟踪 |
| 取反不生效 | ! 写在了忽略规则之前 |
将 ! 规则放在对应忽略规则之后 |
| 忽略了不该忽略的 | 模式太宽泛 | 使用 / 限定路径范围 |
| 忘记忽略 .env | 未包含环境变量模板 | 始终添加 .env 到 .gitignore |
| 团队规则不一致 | 没有统一模板 | 使用工具生成标准模板 |
.gitignore 与 .gitkeep
忽略目录后,Git 不会跟踪空目录。如需保留空目录结构:
logs/ ← .gitignore 忽略日志
logs/.gitkeep ← .gitkeep 占位,保留目录
.gitkeep不是 Git 功能,是社区约定。在空目录中放一个.gitkeep文件即可。
总结
.gitignore 是项目配置的基础,正确的忽略规则能避免提交敏感信息和冗余文件。掌握语法规则、常用模板和全局配置,配合 gitignore 工具 快速生成,是高效版本控制的第一步。
#gitignore#Git#忽略规则#项目配置#版本控制