about

关于 .gitignore 生成器

本工具直接采用 GitHub 维护的官方模板集 github/gitignore,把多个模板合并为一个文件并整理重叠的规则。生成的规则实际会忽略哪些文件,可以在按照与 git 相同的匹配规则实现的模式测试器中立即确认。所有处理都在浏览器内完成,您输入的规则和路径不会发送到服务器。

主要功能

使用方法

  1. 在左侧列表中搜索并勾选模板,或点击热门组合按钮。通常选择 1~2 个语言/框架,以及所用的操作系统和编辑器。
  2. 在右侧查看结果。更改去除重复规则分节注释保留原始注释选项会立即生效。项目特有的规则写在自定义规则中。
  3. 通过复制下载在仓库根目录创建 .gitignore。如果浏览器把文件名保存为 gitignore,请在前面加上点号重命名。
  4. 点击测试按钮,规则会转到模式测试标签页。粘贴仓库中的路径,确认是否按预期被忽略(使用 git ls-filesfind . -type f 的输出很方便)。
  5. 如果已提交的文件没有被忽略,请在取消跟踪标签页中生成命令、执行并提交。

模板数据与许可

312 种模板以 github/gitignore 仓库的提交 356fd7b(2026-09-11)为准。该仓库以 CC0-1.0(公共领域贡献)发布,可以自由复制、修改和再分发。根目录为语言与框架,Global 为操作系统、编辑器与工具,community 为专用模板。各模板的详解和本站的文字均由本站编写。

常见问题

已经加入 .gitignore,但文件仍然出现在 git status 中。

.gitignore 只作用于尚未被跟踪的文件。已提交的文件需要用 git rm --cached <文件> 从索引中移除并提交后才会被忽略。可以在取消跟踪标签页中生成命令。

已经用 `!` 重新包含,但仍然被忽略。

如果父目录本身被排除,git 不会查看其内部,因此无法用 ! 恢复其中的文件。请用 logs/* 代替 logs/,只排除目录中的内容,然后使用 !logs/keep.txt。模式测试器会把这种情况显示为“已忽略(父目录)”。

去重会不会改变规则的含义?

git 遵循最后匹配的规则。同一规则再次出现时,如果中间没有 ! 规则,删除后面那条结果不变。如果中间有否定规则,本工具不会删除重复项,而是予以保留。

模式测试器的结果与实际 git 一致吗?

我们按照 gitignore(5) 文档和 git 的 wildmatch 行为实现,并将数千组随机模式和路径与实际 git ls-files --ignored 的结果进行对照,确认结果一致。不过,它不会一并计算子目录中的 .gitignore、.git/info/exclude 和全局设置,因此整个仓库的最终判定请用 git check-ignore -v 确认。

macOS、VS Code 的规则应该放进项目的 .gitignore 吗?

操作系统和编辑器生成的文件属于个人环境,推荐放在通过 core.excludesFile 指定的全局 gitignore 中。不过团队成员往往没有配置全局设置,因此也有很多团队把它们一并放进项目文件。

模板数据有多新?

我们用构建脚本下载 github/gitignore 仓库并随站打包。基准提交和日期显示在关于页面、模板列表底部以及生成结果的开头注释中。

输入的内容会被保存或发送吗?

不会。生成、测试和命令生成都在浏览器中执行。只有浅色/深色主题和生成选项会保存在此浏览器的 localStorage 中。