生成Git忽略规则

.gitignore生成器

先选项目用到的语言和工具,再补充需要忽略的路径。生成的.gitignore可直接预览、复制和下载。

生成Git忽略规则在浏览器内生成
常用项目组合

01 选择模板

语言与框架
编辑器
操作系统
其他项目规则

每行一条规则,保留原有顺序和行尾空格。

02 .gitignore

3个模板 · 23行

保存到仓库根目录前,请检查规则;已有文件应合并处理。已被Git跟踪的文件不受影响。

新项目的.gitignore该写什么?

通常先排除可重新生成的文件:依赖目录、构建产物和测试缓存。Next.js项目可同时选Node.js和Next.js;Python项目则从虚拟环境、字节码和测试缓存入手。不要把共享配置一并排除。

这里提供18组精简基础模板,并非GitHub模板库的完整镜像,也不会自动识别仓库。下载后保留文件名前面的点,将规则合并到项目的.gitignore,检查后再提交。

规则写了,为什么仍然能看到文件?

先分清“匹配规则”和“已经跟踪”。.gitignore不会让已提交的文件自动退出版本管理。可用git check-ignore -v --no-index path/to/file定位匹配规则,并结合git status检查状态。

确实要停止跟踪某个文件时,git rm --cached -- path/to/file会暂存仓库中的删除操作,但保留本地文件。确认变更后再提交,不要批量照抄清理命令。

共享规则和个人习惯分开处理

团队通用的构建目录适合写进项目规则;个人临时文件可写入.git/info/exclude。本工具不会整目录忽略VS Code或JetBrains共享配置,也不会默认排除锁文件。

三个常用项目示例

Next.js项目

Node.js依赖、Next.js产物和macOS元数据,保留锁文件。

返回生成器
# 由LightNode Gitignore生成器生成
# 添加到项目之前,请检查这些基础规则。

# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-store/
coverage/
.nyc_output/

# Next.js
.next/
out/
.vercel/
*.tsbuildinfo

# macOS
.DS_Store
._*
.Spotlight-V100/
.Trashes/

Python开发环境

Python虚拟环境和缓存,加上VS Code历史与Linux备份文件。

返回生成器
# 由LightNode Gitignore生成器生成
# 添加到项目之前,请检查这些基础规则。

# Python
__pycache__/
*.py[cod]
.venv/
venv/
.pytest_cache/
.mypy_cache/
.ruff_cache/
.coverage
htmlcov/
*.egg-info/

# VS Code
.history/
*.vsix

# Linux
.Trash-*/
*~

Java与IntelliJ

包含Maven、Gradle、JetBrains个人状态与Windows元数据,请取消不使用的构建工具。

返回生成器
# 由LightNode Gitignore生成器生成
# 添加到项目之前,请检查这些基础规则。

# Java / Maven
*.class
target/

# Gradle
.gradle/
build/

# JetBrains
.idea/workspace.xml
.idea/tasks.xml
.idea/shelf/
.idea/httpRequests/

# Windows
Thumbs.db
ehthumbs.db
Desktop.ini
$RECYCLE.BIN/

Gitignore常见问题

自定义规则会覆盖模板吗?

自定义内容放在末尾。同一优先级下最后匹配的规则生效,因此保留重复规则和!例外,不做全局去重。搜索不会取消已选项,切换组合保留自定义内容,全部清空则两者都删除。

如何忽略日志,但保留一个样例?

可先写/logs/*,再写!/logs/keep.log。不要先用/logs/排除父目录,否则无法重新包含其中的文件。

.env.example会被排除吗?

选用本地环境文件模板时,会忽略.env.env.*,但保留.env.example.env.sample。样例中只应写占位值;忽略规则不会清除历史提交中的密钥。

package-lock.json要不要忽略?

模板不排除package-lock.json、yarn.lock、pnpm-lock.yaml、Cargo.lock、composer.lock和Gemfile.lock。是否提交锁文件应结合应用或库的发布方式决定。

规则会上传到服务器吗?

生成在浏览器内完成,不上传仓库,不调用生成接口,不持久保存自定义内容,也不会把规则写入网址。复制和下载由按钮触发。

Git忽略规则官方文档