Pack Camo

.gitignore 生成器

将各种语言、框架、编辑器和操作系统的模板整合为一个 .gitignore。

所有处理都在本地完成,不会上传任何内容。

.gitignore

106 条规则 · 185 行 · 已去重 1 条

# Generated for: Node, Env & secrets, macOS, Windows, VS Code### Node #### Logslogs*.lognpm-debug.log*yarn-debug.log*yarn-error.log*lerna-debug.log*.pnpm-debug.log*# Diagnostic reports (https://nodejs.org/api/report.html)report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json# Runtime datapids*.pid*.seed*.pid.lock# Coverage directory used by tools like istanbulcoverage*.lcov.nyc_output# Dependency directoriesnode_modules/jspm_packages/bower_components# TypeScript cache*.tsbuildinfo# Optional npm cache directory.npm# Optional eslint / stylelint cache.eslintcache.stylelintcache# Optional REPL history.node_repl_history# Output of 'npm pack'*.tgz# Yarn Integrity file.yarn-integrity# dotenv environment variable files.env.env.development.local.env.test.local.env.production.local.env.local# parcel-bundler cache.cache.parcel-cache# Build outputdistbuild# Gatsby files.cache/public# Serverless directories.serverless/# FuseBox cache.fusebox/# DynamoDB Local files.dynamodb/# TernJS port file.tern-port# Stores VSCode versions used for testing VSCode extensions.vscode-test# yarn v2.yarn/cache.yarn/unplugged.yarn/build-state.yml.yarn/install-state.gz.pnp.*### Env & secrets #### Environment files.env.*!.env.example!.env.sample!.env.template# Keys and certificates*.pem*.key*.p12*.pfx*.crt*.cerid_rsaid_rsa.pubid_ed25519id_ed25519.pub# Credentialscredentials.jsonsecrets.jsonsecrets.yml*.secret.npmrc.pypirc.netrcservice-account*.json### macOS #### General.DS_Store.AppleDouble.LSOverrideIcon[\r]# 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.AppleDesktopNetwork Trash FolderTemporary Items.apdisk### Windows #### Windows thumbnail cache filesThumbs.dbThumbs.db:encryptableehthumbs.dbehthumbs_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### VS 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

已被版本追踪的文件不受影响:运行 git rm --cached <file> 即可停止追踪。

一站式为您的整套技术栈生成 .gitignore

这款 .gitignore 生成器能够将编程语言、框架、构建工具、编辑器和操作系统的预设模板整合为一个统一的文件。选择 Node 和 Next.js,添加 macOS、Windows 与 VS Code,即可获得一个分类清晰、无冗余重复规则且预留自定义空间的 .gitignore。所有模板精炼自 GitHub 官方 github/gitignore 仓库,全部在您的浏览器本地组装生成。

如何生成 .gitignore 文件

  1. 1在搜索框中输入语言、框架、编辑器或操作系统名称(例如 python、unity、jetbrains),点击标签添加。按 Enter 键可快速添加第一个匹配项。
  2. 2根据项目需要组合多个模板。典型的 Web 项目通常包含语言、框架、代码编辑器和操作系统。
  3. 3在自定义行中添加项目专属的忽略路径,例如 /uploads/ 或 *.sqlite。
  4. 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 开源仓库,并剔除了过时失效的旧条目。生成后请根据自身项目的特殊需求进行适当微调。