.gitignore 生成器 — 覆盖各种语言和 IDE 的模板

把语言、框架、编辑器和操作系统的 .gitignore 模板合并成一个干净的文件。

快速开始
按 Enter 添加第一个匹配项。
Node.jsmacOSWindowsVisual Studio Code
语言
框架
编辑器 / IDE
操作系统
工具 / 平台
.gitignore
### Node.js ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Coverage
coverage
*.lcov
.nyc_output

# Dependencies
node_modules/
jspm_packages/
bower_components

# Caches
.npm
.eslintcache
.stylelintcache
.cache
.parcel-cache
*.tsbuildinfo
.node_repl_history
*.tgz

# Yarn
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*

# Environment
.env
.env.*
!.env.example

# Build output
dist
build
out

### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride
# Custom folder icons (the real file name is "Icon" followed by a carriage return)
Icon?

# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### Windows ###
# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db

# Dump file
*.stackdump

# Folder config file
[Dd]esktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp

# Windows shortcuts
*.lnk

### Visual Studio Code ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets

# Local History for Visual Studio Code
.history/

# Built Visual Studio Code Extensions
*.vsix
74 条规则

浏览器下载以点开头的文件时,常会保存为“gitignore.txt”;请在项目根目录中将其重命名为 .gitignore。

完全在你的浏览器中运行。模板已随页面打包,不会获取或发送任何内容。 浏览全部免费工具.

发现问题,或者觉得哪里可以更好?每条消息我们都会阅读,并尽快修复。

这款 .gitignore 生成器会根据你项目中用到的语言、框架、编辑器和操作系统的模板,生成一个 .gitignore 文件。选择 Node.js、Python、Unity、JetBrains、macOS 或其他 60 多个模板中的任意一个,或者从“Next.js 应用”这样的技术栈开始,模板会合并成一个文件,每部分都有标题。多个模板中重复出现的规则只写一次。

模板基于广泛使用的 github/gitignore 合集编写,去掉了冗长的注释块,并随页面一起打包,因此可以离线使用,你项目的任何信息都不会发送出去。去重处理很谨慎,因为 .gitignore 对顺序敏感:一旦某个模板用“!”规则重新包含了某些内容,之后的重复规则会被保留,以免改变实际被忽略的内容。.gitignore 只对未跟踪的文件生效;Git 已在跟踪的文件请参见常见问题。

使用方法

  1. 点击一个快速开始技术栈,或搜索模板并勾选项目用到的:语言、框架、编辑器和操作系统。
  2. 点击标签上的 × 移除不需要的模板。
  3. 在“自定义规则”中添加项目专用规则,例如 uploads/ 目录。
  4. 复制结果,或下载后以 .gitignore 为名保存到仓库根目录。
  5. 提交它:git add .gitignore && git commit -m "Add .gitignore"。

常见问题

为什么文件加进 .gitignore 后仍被跟踪?

.gitignore 只能阻止未跟踪的文件被添加。如果 Git 已经在跟踪某个文件,就会继续跟踪。用 git rm --cached path/to/file(文件夹用 git rm -r --cached folder/)把它从索引中移除而不删除磁盘上的文件,然后提交。如果文件中包含密钥,密钥仍然留在历史记录中,应当更换。

.gitignore 文件应该提交吗?

应该。它应当放在仓库中,这样每个克隆项目的人都会忽略相同的构建输出和依赖文件夹。只适用于你自己的规则(例如编辑器文件)可以放在 .git/info/exclude 中(仅对单个仓库生效),或放进用 git config --global core.excludesFile ~/.gitignore_global 设置的全局忽略文件中。

package-lock.json 或 yarn.lock 应该忽略吗?

不应该,应用项目要提交锁文件。它记录了经过测试的确切依赖版本,让每次安装和每次 CI 运行都得到相同的依赖树。poetry.lock、Pipfile.lock、二进制项目的 Cargo.lock、Gemfile.lock 和 composer.lock 也是如此。这里的模板都不会忽略它们。

这些规则是什么意思?

末尾的斜杠(build/)只匹配目录。开头的斜杠(/build)把规则锚定到 .gitignore 所在的目录。* 匹配除斜杠外的任意内容,** 可跨目录匹配(logs/**/*.log),? 匹配单个字符。以 ! 开头的行会重新包含之前被某条规则排除的内容,# 表示注释,但只在行首有效。

为什么我的取反(!)规则不起作用?

如果文件的某个上级目录被排除了,Git 就无法重新包含该文件,因为它根本不会进入被忽略的目录查看。不要忽略文件夹本身(logs/),而是忽略其内容(logs/*),再重新包含该文件(!logs/.gitkeep)。顺序也很重要:! 这一行必须写在它要覆盖的规则之后。

能查出文件为什么被忽略吗?

能:git check-ignore -v path/to/file 会输出匹配到的 .gitignore 文件、行号和规则。git status --ignored 会列出工作区中所有被忽略的文件。

.gitignore 中应该放什么

• 包管理器会重新安装的依赖:node_modules/、vendor/、.venv/、Pods/。

• 构建输出和缓存:dist/、build/、target/、.next/、__pycache__/、*.class、覆盖率报告。

• 本地密钥和环境文件:.env、*.pem、凭据 JSON。改为提交一个带占位值的 .env.example。

• 编辑器和操作系统产生的杂项:.DS_Store、Thumbs.db、.idea/、.vscode/ 中的大部分内容。

• 日志、崩溃转储和本地数据库:*.log、*.sqlite(除非数据库是特意提交的测试夹具)。

应保留在仓库中的:源代码、锁文件、每个开发者都需要的配置,以及共享的编辑器设置,例如 .vscode/extensions.json——VS Code 模板特意重新包含了它。

Git 从哪里读取忽略规则

Git 会合并多个来源,优先级从高到低依次为:命令行中给出的规则;与路径同目录的 .gitignore 文件,然后逐级向上直到仓库根目录的各个 .gitignore(子目录中的 .gitignore 只对其下方生效);.git/info/exclude,它只在本地生效,永远不会被提交;以及 core.excludesFile 指定的全局文件,默认为 ~/.config/git/ignore。如果你希望项目的 .gitignore 只包含与项目相关的规则,可以把操作系统和编辑器规则放进全局文件。

相关免费工具

  • Chmod 计算器 — 勾选读、写、执行复选框,得到八进制权限值和 chmod 命令,或解读 755、644 和 rwxr-xr-x。
  • Docker Run ⇄ Compose — 把 docker run 命令转换成 docker-compose.yml 服务,或把 Compose 服务转回 docker run 命令。
  • 正则表达式测试 — 用示例文本测试正则表达式,实时高亮匹配结果,显示捕获组并预览替换效果。免费,在浏览器中运行。
  • JSON 格式化 — 格式化、压缩和校验 JSON,解析错误精确到行和列。在浏览器中运行,无需上传。