一站式为您的整套技术栈生成 .gitignore
这款 .gitignore 生成器能够将编程语言、框架、构建工具、编辑器和操作系统的预设模板整合为一个统一的文件。选择 Node 和 Next.js,添加 macOS、Windows 与 VS Code,即可获得一个分类清晰、无冗余重复规则且预留自定义空间的 .gitignore。所有模板精炼自 GitHub 官方 github/gitignore 仓库,全部在您的浏览器本地组装生成。
如何生成 .gitignore 文件
- 1在搜索框中输入语言、框架、编辑器或操作系统名称(例如
python、unity、jetbrains),点击标签添加。按 Enter 键可快速添加第一个匹配项。 - 2根据项目需要组合多个模板。典型的 Web 项目通常包含语言、框架、代码编辑器和操作系统。
- 3在自定义行中添加项目专属的忽略路径,例如
/uploads/或*.sqlite。 - 4复制生成的内容,或点击下载保存为
.gitignore文件并放置在 Git 仓库的根目录下。
.gitignore 文件的核心作用
.gitignore 文件指明了 Git 不应追踪的文件:可通过包管理器重新安装的依赖项(node_modules/、vendor/)、编译输出(dist/、target/)、缓存、日志、编辑器专属配置以及 .env 等敏感凭证。忽略这些文件有助于减小仓库体积、提高 diff 的可读性,并杜绝凭证意外泄露的风险。
该文件仅对尚未被追踪(untracked)的新文件生效。如果某个文件此前已被提交,直接写入 .gitignore 并不会将其从版本库中移除;请运行 git rm --cached <file>(目录使用 git rm -r --cached <dir>)并提交,即可在保留本地文件的同时停止对其版本追踪。
.gitignore 规则匹配语法
规则的先后顺序极为关键:后面的匹配规则会覆盖前面的规则。正因如此,诸如 !.vscode/settings.json 之类的白名单例外项必须写在宽泛的 .vscode/* 之后。
- *.log
- 不含斜杠的通配符可在任意深度匹配:忽略整个仓库中所有以 .log 结尾的文件。
- /build
- 开头的斜杠将规则锚定在 .gitignore 所在目录,因此仅忽略根目录下的 build 文件夹。
- dist/
- 末尾的斜杠表示仅匹配目录,而不会匹配名为 dist 的普通文件。
- **/temp
- 双星号跨目录层级匹配:忽略根目录或任何子目录下的 temp 文件夹。
- !.env.example
- 开头的感叹号表示重新包含此前规则排除的文件。若父级目录已被完全排除,则无法单独重新包含。
- # 注释
- 以 # 开头的行被视作注释;空行作为分隔段落。若要字面匹配 # 或 !,需在前面加反斜杠转义。
模板合并与去重机制
每个模板生成一个带有 ### 名称 ### 标题的独立板块。启用去除重复规则后,之前板块已出现的规则在后续板块中会自动滤除,规则被清空后的空注释块也会随之删除,从而在保持文件精简的同时保留清晰注释。带有感叹号的取反例外规则会保留在原位置,以保证其逻辑正确。
构建工具与框架的模板通常存在重叠(例如 Node、Next.js 和 Vite 均会忽略 node_modules 和日志文件),经由去重处理后通常可精简 20% 或以上的冗余行。
项目级、全局级与本地专属忽略文件
将项目根目录的 .gitignore 提交至仓库供团队成员共享,且仅包含由该项目本身产生的构建垃圾。仅在您个人电脑上生成的文件(例如 .DS_Store、Thumbs.db 或编辑器缓存)应通过 git config --global core.excludesFile ~/.gitignore_global 配置进全局忽略文件,免去为每个项目重复配置的麻烦。对于特定仓库中仅属于您个人的规则,可写入永不提交的 .git/info/exclude 文件中。
应用项目的依赖锁定文件(如 package-lock.json、poetry.lock 和 Cargo.lock)必须提交,切勿忽略,以确保各环境安装完全一致。如需检查某文件被哪条规则忽略,可运行 git check-ignore -v path/to/file。
切勿将敏感信息提交至 Git
环境变量与机密模板会自动忽略各类 .env 文件、私钥及常见凭据文件,同时保留用于变量说明的 .env.example。忽略操作只能预防未来的提交:若密钥此前已被推送到远程仓库,请立即轮换废弃,因为它依然驻留在 Git 历史记录中。配套工具:用于检查权限的 chmod 计算器 以及用于控制搜索引擎抓取的 robots.txt 生成器。
常见问题
- 我应该把 .gitignore 文件放在哪里?
- 放置在仓库的根目录下,与 .git 文件夹处于同一层级。您也可以在子目录中放置各自的 .gitignore,其规则仅在该子目录下生效。
- 为什么加入 .gitignore 后文件仍旧被 Git 追踪?
- .gitignore 仅对未追踪的新文件有效。请执行 git rm --cached <file>(目录使用 git rm -r --cached <folder>)并提交,Git 即可停止追踪,同时不会删除您的本地文件。
- 我应该忽略 package-lock.json 或 yarn.lock 吗?
- 对于应用开发而言不应忽略。Lock 文件固定了依赖包的精确版本以保证多环境安装结果一致,属于必须提交的文件。仅忽略项目中未使用的包管理器的 lock 文件。
- .vscode 或 .idea 目录应该加入 .gitignore 吗?
- 通常只忽略个人专属配置。VS Code 模板在忽略 .vscode/* 的同时保留了共享的 settings.json、tasks.json 和 launch.json;而 JetBrains 模板则会忽略整个 .idea 目录。
- 如何在所有项目中统一忽略 .DS_Store?
- 配置全局忽略文件:创建包含 .DS_Store 的 ~/.gitignore_global,然后执行 git config --global core.excludesFile ~/.gitignore_global。
- 如何忽略某个文件夹下除了某一个文件之外的所有内容?
- 忽略文件夹的内容而非文件夹本身,然后使用感叹号重新包含:先写 folder/* 再写 !folder/keep.txt。若写为 folder/ 则会直接排除整个目录,其内部任何文件均无法被单独重新包含。
- 这些模板的数据来源是哪里?
- 精选自 GitHub 官方基于 CC0 许可发布的 github/gitignore 开源仓库,并剔除了过时失效的旧条目。生成后请根据自身项目的特殊需求进行适当微调。