勾选你的技术栈,自动生成并去重。建议同时勾选「环境变量」——把 .env 排除掉,避免密钥被提交到仓库;如果团队需要共享一份配置样例,就额外放一个 .env.example 并确保它不被忽略。
工具说明
把不该进版本库的文件排除掉,是仓库整洁的第一道关口。漏掉一个 .env 可能把数据库密码推上公开仓库;漏掉 node_modules 会让仓库直接膨胀几百兆。本工具按技术栈拼装规则,并自动合并重复项。
这些文件为什么必须忽略
- 依赖目录:node_modules、vendor、target 这类目录可以由锁文件完整还原,提交进去只会拖慢克隆速度。
- 构建产物:dist、build、编译出的二进制文件都是可再生成的,不该入库。
- 环境变量文件:.env 里通常放着密钥与连接串,属敏感信息,绝对不能提交。
- 编辑器与系统文件:.idea、.DS_Store 这类与项目无关,提交后还会导致队友之间反复冲突。
- 日志与缓存:运行时产生的日志、覆盖率报告、编译缓存,提交后会让每次提交的差异变得不可读。
已经误提交了怎么办
- 把规则写进 .gitignore。
- 用 git rm --cached 文件路径 把它从索引里移除(保留本地文件)。
- 提交这次改动。注意:历史记录里仍然是可见的,如果提交过密钥,必须立刻更换密钥,仅删除文件是不够的。
两个容易忽略的细节
- 锁文件要不要忽略:应用项目应当提交锁文件(保证依赖版本一致);库项目通常不提交,由使用者自行解析。
- 否定规则:以感叹号开头的规则可以把已经忽略的文件重新纳入,比如忽略整个目录后单独放行某个样例文件。注意顺序——否定规则必须写在对应忽略规则的后面。
你可能还想问
.gitignore 写了规则但文件还是被跟踪怎么办?
因为忽略规则只对未跟踪的文件生效。已经提交过的文件即使后来被忽略,Git 仍然继续跟踪它。正确做法是先执行 git rm --cached 把文件从索引移除(加 --cached 保留本地文件),再提交。对所有已跟踪文件批量处理时,注意区分目录与文件,目录要加 -r 参数。
为什么 team 里有人不需要某些规则?
因为 .gitignore 是仓库级共享的,团队成员看到同一份规则。个人偏好(比如自己用的编辑器产生的临时文件)应该写在全局忽略里(git config 的 core.excludesFile 指向一个本地文件),而不是塞进仓库,否则会污染别人的工作区。仓库级只放与项目本身相关的规则。
忽略整个目录后想放行其中一个文件怎么写?
先写忽略目录的规则,再写否定规则放行具体文件。关键是顺序不能反:后写的规则覆盖先写的,所以否定规则必须在忽略规则之后。另外,如果父目录本身被忽略了,Git 不会进入该目录检查,此时需要先放行父目录,或者改用 目录内容忽略的写法。
忽略规则对已经存在但未提交的文件有效吗?
有效。只要文件还没被加入过版本控制,忽略规则一写就立刻生效,无需其它操作。可以用 git status 确认:被忽略的文件在正常状态下不再出现;想看被忽略了哪些,用 git status --ignored。
速查在线工具箱