使用方法
- 勾选您的项目使用的编程语言、框架、编辑器和操作系统。点击 “全部清除” 可重新开始。
- 阅读 “您的 .gitignore 文件”。每个模板都有自己的标签,已被其他模板列出的行只会出现一次。
- 点击 “复制” 或 “下载”,并将文本保存为名为 .gitignore 的文件,放在项目的顶层文件夹中。
模板如何合并
您选择的每个模板都会成为一个分区,以标签行开头,例如 # ==== Node ====。各分区按页面上列表的顺序排列,因此相同的选择总会得到相同的文件。
- 文件中已有的模式再次出现时会被略去。
- 文件中已有的注释同样会被略去。
- 行与行之间保留空行,但每个分区开头和结尾的空行会被删除。
- 如果某个模板的所有行都已被前面的模板列出,它就不新增任何内容,因此不会获得标签行。
重复行与 ! 符号
Git 按顺序读取 .gitignore 文件中的模式,后面的模式会覆盖前面的模式。以 ! 开头的模式会重新包含先前模式排除的文件(gitignore(5))。因此,只有当两个副本之间的行与其同类时,重复的模式才会被略去:如果该模式是排除规则,两个副本之间就不能有以 ! 开头的行;如果它以 ! 开头,两者之间就不能有排除规则。否则重复会保留下来,因为它会改变结果。
模板的来源
这51个模板是 github/gitignore 中文件的副本,那是 GitHub 为新代码仓库提供的模板集合。该集合以 CC0 1.0 Universal 发布,即把模板置于公有领域。除合并之外,每个模板的行保持原样。分区标签使用项目名称,这些名称不作翻译。
文件不涵盖的内容
- 它不知道您自己的工具会生成哪些文件。请自行添加这些行,例如上传文件夹或本地设置文件。
- 模式只影响 git 尚未跟踪的文件。已经被跟踪的文件会继续被跟踪,直到您对它运行 git rm --cached。
- 编辑器和系统文件通常应放在全局忽略文件(core.excludesFile)中,这样电脑上的每个项目都会忽略它们,项目文件中无需添加这些行。
示例:C 与 C++
先选择 C,再选择 C++,将得到一个含77行模式和注释的文件。C 分区新增46行。C++ 分区新增31行,并略去其中23行:这些行 C 分区已经列出,例如 *.o、*.obj 和 *.so。这些重复行之间没有以 ! 开头的行,因此重复行被略去。
| 模板 | 新增行数 | 略去行数 |
|---|---|---|
| C | 46 | 0 |
| C++ | 31 | 23 |
常见问题
.gitignore 文件会被发送到服务器吗?
不会。模板随页面一起提供,合并在您的浏览器中进行,因此您生成的文件在您保存之前都留在您的设备上。
两个模板都有同一行时,为什么只列出一次?
合并时保留第一个副本,略去之后的副本,因为重复的模式不会改变任何结果。例外是出现在以 ! 开头的行之后的重复,它可能改变结果,因此该副本会保留下来。
.gitignore 文件能让 git 停止跟踪已经被跟踪的文件吗?
不能。模式只影响 git 尚未跟踪的文件。要让已在代码仓库中的文件停止被跟踪,请对它运行 git rm --cached,之后模式才会对它生效。
编辑器和系统文件应该放进项目的 .gitignore 吗?
可以,但通常更好的做法是使用 core.excludesFile 设置的全局忽略文件。它适用于电脑上的每个项目,因此项目文件只需保留与项目本身相关的行。
模板是最新的吗?
它们是本工具上次更新时 github/gitignore 文件的副本。代码仓库会随时间变化,GitHub 上可能已有更新版本的模板。
资料来源
- github/gitignore:模板集合(CC0 1.0 Universal,英文)
- gitignore(5):模式规则,Git 文档(英文)
- CC0 1.0 Universal:模板的许可协议(英文)
数据和文字最近核对于2026年11月10日星期二。