这个工具做什么
.gitignore 生成器把现成的模板组合成仓库用的 .gitignore 文件。选出项目涉及的语言、框架、构建工具、游戏引擎、编辑器和操作系统,工具会把它们的规则合并成一个文件,每个部分前面有 ### 名称 ### 标题,可以直接复制或下载。
内置大约六十个来自 github/gitignore 的模板:Node.js、Python、Java、Go、Rust、.NET、Swift,Laravel、Symfony 等 PHP 框架,Next.js、Flutter、Android、Terraform、Unity、Unreal Engine、Godot,VS Code、JetBrains 系列 IDE、Vim、Emacs,以及 macOS、Windows、Linux 等。全部在浏览器里完成,不会发出任何请求。
使用方法
- 在列表里点击模板即可加入。用搜索框能快速找到,它也认常见别名,比如输入“typescript”会找到 Node.js,“intellij”会找到 JetBrains。
- 已选的模板按点选顺序显示在顶部,生成的文件也按这个顺序排列。点一下标签可以移除,点清空重新开始。
- 项目特有的条目写在自定义规则里,用逗号分隔,比如
.env, /dist, *.local,会追加到文件末尾的### Custom ###部分。 - 选择是否保留模板里的说明注释,以及是否去掉前面模板已经写过的规则。
- 复制结果或下载。下载的文件名是
.gitignore,放到仓库根目录即可。
选择会保存在页面地址里,收藏或分享链接就能得到同样的文件。
示例
选择 Node.js、macOS 和 VS Code,自定义规则填 .env.local,关闭注释,得到的文件大致如下(有删节):
### Node.js ###
logs
*.log
npm-debug.log*
…
node_modules/
…
### macOS ###
.DS_Store
.AppleDouble
.LSOverride
…
### VS Code ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
!*.code-workspace
*.vsix
### Custom ###
.env.local
以 ! 开头的规则会把前面排除的内容重新包含进来:这里共享的 VS Code 设置、任务和调试配置留在仓库里,个人的编辑器状态则被忽略。如果再把 .env 加进自定义规则,结果不会变化,因为 Node.js 模板里已经有这一条。
小贴士
- 个人工具相关的规则(编辑器交换文件、系统元数据)放进全局忽略文件,所有仓库都能受益,不必每个项目都写一遍。
- 结尾带斜杠的
build/只匹配目录;开头带斜杠的/build只匹配仓库根目录下的那一个。 - 用
git check-ignore -v <路径>可以查看某个路径被哪个文件的哪一行规则忽略。 - 已经提交过的密钥不能靠 .gitignore 保护:应当立即更换密钥并清理历史记录。
常见问题
› 模板来自哪里?
来自 GitHub 官方的 github/gitignore 模板库,该库以 CC0 公有领域协议发布。模板随页面一起打包,使用时不会去网络下载任何内容。
› 为什么加进 .gitignore 之后文件还在被跟踪?
.gitignore 只对未跟踪的文件生效。文件如果以前已经提交过,需要用 git rm --cached <文件>(文件夹加 -r)把它移出索引再提交;文件仍留在磁盘上,之后就会被忽略。
› 「去掉重复规则」是做什么的?
很多模板有相同的规则:Java 和 Kotlin 都忽略 *.class,C 和 C++ 都忽略 *.o。打开这个选项后,同一条规则只在第一次出现时写入,规则全部被去掉的注释标题也会一起删掉。关掉它就会得到和官方发布完全一致的每个模板。
› .gitignore 文件要提交吗?
要。提交后的 .gitignore 对所有克隆仓库的人生效。只和你自己电脑有关的规则(比如编辑器、操作系统)也可以放进全局忽略文件(git config --global core.excludesFile ~/.gitignore_global)。