你可能会说:
- “为什么我的仓库有好几百兆?”
- “.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——给整个项目拍快照的工具:每次存档都记下改了什么、谁改的、为什么改,随时能回到任何一次。
接着看
- 密钥——证明"我有权限做这件事"的一串字符。谁拿到它,谁就能以你的身份调用服务、花你的钱。
在这些课里出现