.gitignore 生成器

下一个

.gitignore的缺失是导致API密钥出现在Git历史记录中、以及400 MB的node_modules被推送到GitHub的原因。该生成器会为您的技术栈(Node.js、Python、Rails或Laravel)提供经过验证的模板,其中已排除依赖文件夹、构建输出文件及环境配置文件。

如何生成 .gitignore 文件

  1. 1

    选择你的技术栈

    Node、Python、Rails 或 Laravel,每种技术栈都有各自独特的临时产物。

  2. 2

    生成

    该工具将通用规则(.DS_Store、.env、node_modules)与栈特定规则进行整合。

  3. 3

    另存为 .gitignore

    在首次提交前,将文件放置于仓库根目录下。

  4. 4

    提交

    .gitignore 文件本身也需要被追踪,它是项目的一部分,而非本地偏好设置。

为什么公共块始终存在

规则 忽略理由
.DS_Store macOS Finder 元数据,对其他计算机毫无用处
.env 机密信息:API密钥、数据库密码、OAuth凭证
.env.* 特定环境的变体(预发布、生产)
!.env.example 但请保留示例文件,以便新贡献者了解其格式结构
node_modules/ 可从 package.json 安装;体积庞大且具有平台特定性

特定技术栈的附加规则

技术栈 主要新增规则
Node dist/coverage/npm-debug.log*
Python __pycache__/.venv/*.pyc.pytest_cache/
Rails log/*tmp/*storage/*/public/assets
Laravel vendor//storage/*.key/public/build.phpunit.cache/

常见错误

  • 过早提交 .env,之后才将其添加至 .gitignore。该文件已存在于历史记录中,请使用 git rm --cached .env,并轮换其中曾包含的所有密钥。
  • .env.example 连同 .env 一起忽略。团队成员需要该示例文件来初始化项目。
  • 过于宽泛的通配符*.log 可能会隐藏对生产至关重要的日志配置;如有疑问,请写得更具体。
  • 并非只属于你本地的平台特定文件:请通过共享的 .gitignore 提交,而非个人的 .gitignore

个人 gitignore 与项目 gitignore 的区别

对于您专属的编辑器文件(JetBrains IDE、Emacs),请使用您的全局gitignore配置(~/.config/git/ignore),而非为每个项目单独设置冗余配置。

常见问题

因为 .gitignore 仅能阻止未跟踪文件被添加。请运行 git rm --cached path/to/file 停止对已提交文件的跟踪,提交该变更后,该规则将自动将其排除。

不,锁文件必须提交,以确保所有环境都能安装完全相同的版本。忽略这些文件会再次引发“仅在我机器上正常”的类型错误。

一个前导斜杠将该模式锚定在仓库根目录下。/logs仅匹配顶级目录logs/,而logs则可匹配任意深度下的所有logs目录。

不会。生成的文件不会被存储或跟踪。您的技术栈选择会被发送到我们的服务器以生成规则,在多步骤模式下也会出现在页面链接中,但文件内容不会被保留。

相关工具

此工具还提供其他语言版本