忽略文件.gitignore
你可能会说
有些文件我不想让 Git 管,比如密钥和依赖包,怎么排除掉?
告诉 Git 哪些本地文件不要加入版本记录的规则清单例如可重新下载的工具文件和本机保存的密钥文件,通常会写进忽略规则。它只对还没被版本记录保存的文件生效;已经保存过的文件不会因此消失,已经泄露的密钥也必须立即更换。
组成结构 · Anatomy
.gitignore
node_modules/ 依赖目录,npm install 随时装回来
.next/ 构建产物,npm run build 会重新生成
.env 密钥文件,见 {c:env-var},不应提交到仓库
.DS_Store mac 系统生成文件,与项目代码无关
体积较大的第三方包;按 package.json 和锁文件可重新安装
打包生成的结果,每次 build 都会重新产出
可能包含 API 密钥等敏感配置,不应提交到仓库
操作系统自动生成的小文件,与代码无关
常见变体 · Variants
指定文件Exact
.env
只忽略名称完全匹配的文件
整个目录Directory
node_modules/
末尾加斜杠,忽略整个文件夹
通配一类Wildcard
*.log
同后缀的一类文件全部忽略
保留例外Negate
!keep.log
以感叹号开头,使该文件不受前面规则忽略
典型使用场景
新建 .gitignore 文件
git status 前后对比
# 没写 .gitignore 时:
$ git status
Untracked: node_modules/ .next/ .env .DS_Store …(列表很长)
# 写好 .gitignore 后:
$ git status
Changes not staged: modified: index.html
列表仅显示需要处理的项目文件
GitHub 模板库
Create a new repository
Add .gitignore
Node ▾
💡 已有项目想补模板?去 github.com/github/gitignore,搜 Node 复制整份
.env 泄露补救
⚠ .env 已经推送到远端
应立即把其中的密钥视为已经泄露
1
立即到服务平台轮换或吊销该密钥,并创建新的密钥
2
先备份,并按托管平台与团队流程评估是否清理历史。共享仓库需要协调协作者、分支和开放中的 PR;个人不要直接改写历史
BFG 或 git filter-repo 只是可选工具,改写后通常还涉及受控强推;Fork、缓存或旧克隆也可能保留对象。验收时先确认旧密钥已经失效
延伸阅读 · 权威出处