← 术语图鉴

.gitignore

gitignore · 也叫 忽略文件 / ignore 规则

一份"不要纳入版本管理"的清单:写在里面的文件和文件夹,Git 会假装看不见。

你可能会说:

  • “为什么我的仓库有好几百兆?”
  • “.env 文件会不会被传到 GitHub 上?”

它是什么

项目目录里有很多东西不该进仓库:安装来的依赖(node_modules)、构建产物(dist)、本地配置和密钥(.env)、数据库文件、大体积的素材。把它们写进 .gitignore,git add 时就会被跳过。

要注意:.gitignore 只对"还没被跟踪"的文件有效。一个文件已经提交过,再把它写进 .gitignore,Git 仍然会继续跟踪它,必须另外把它从仓库里移除。

已经提交进历史的大文件或密钥,即使后来删除,也仍然留在历史里:仓库照样很大,密钥照样能被翻出来。所以最好在第一次提交之前,就把 .gitignore 写好。

打个比方

像搬家时贴在箱子上的"不搬"标签:垃圾、临时杂物、别人的东西,贴上标签,搬家公司就不会装车。

在这个网站里

这个网站的 .gitignore 忽略了 node_modules、dist、.vercel、.astro/ 等。根目录下曾经有一个不该提交的 cover-image/ 文件夹(做封面时留下的草稿和原图),它一直不在清单里,每次提交只能手动挑文件,一不小心用 git add -A 就会带上它;后来干脆把它移出了项目目录。现在插画原图也这样处理:.gitignore 忽略 PNG 原图,原图存放在项目外面。

容易搞混的地方

常见误解

把文件写进 .gitignore,它就从仓库里消失了

正确理解

已经被跟踪的文件不受影响。要用 git rm --cached 把它移出仓库,历史里的旧版本还要另外处理。

你可以这样告诉 AI

复制下面这段,贴给你的 AI

检查这个项目的 .gitignore:依赖目录、构建产物、.env 和其他密钥文件、数据库文件、大体积素材是否都被忽略?再列出当前仓库里已经被跟踪、但本不该提交的文件。

先知道

  • Git——给整个项目拍快照的工具:每次存档都记下改了什么、谁改的、为什么改,随时能回到任何一次。

接着看

  • 密钥——证明"我有权限做这件事"的一串字符。谁拿到它,谁就能以你的身份调用服务、花你的钱。

在这些课里出现