跳到正文

忽略文件

.gitignore

中级通用

忽略文件(.gitignore)是写在 Git 仓库里的规则文件,用来指定哪些未被跟踪的文件不进入版本管理。做网站时,你可以用它排除本地生成的构建目录,让提交记录集中在需要协作的源码上。

你可能会说:「我做网站时总把本地生成的文件一起提交,能让 Git 自动略过它们吗?」

读之前建议先了解

动手看看

晴空官网 · 工作区更改下面是尚未暂存的文件,不是已提交记录。
.gitignore
# 暂无忽略规则
dist/
构建输出仍保存在本地。
待处理文件
src/App.tsx已跟踪 · 已修改
dist/index.html
未跟踪 · 新生成
已跟踪 · 构建后修改
dist/ 未跟踪内容已忽略
忽略 ≠ 删除,也不会自动取消已有的跟踪。
添加 dist/ 忽略规则
构建文件已被 Git 跟踪

切换两个开关,对照左边的规则和右边的文件列表;也可以悬停或用 Tab 聚焦文件行。重点看构建文件何时消失、何时仍留下。

dist/ 规则会忽略对应目录中未跟踪的内容,让构建产物不再混进待处理列表;本地文件并没有被删除。

此时构建文件尚未被跟踪,开关 dist/ 规则就能让它出现或消失;源码一直保留,协作时更容易聚焦真正需要审查的改动。

要点

  1. 1

    规则写进仓库中的文件

    你把匹配规则写在 .gitignore 里,Git 就会略过符合规则、尚未被跟踪的文件。团队把这个文件一起提交后,大家拉取仓库时也能用同一套规则。

  2. 2

    适合排除可再生成的内容

    比如网站构建后产生的目录、开发工具生成的缓存,通常没必要和源码一起提交。因为它们可以重新生成,排除后,代码差异更容易看清。

  3. 3

    已跟踪文件不会自动退出

    如果某个文件以前已经提交过,后来才写进 .gitignore,Git 仍会跟踪它。你得另外把它从版本管理中移除;忽略规则只影响之后未被跟踪的匹配文件。

容易混淆的地方

.gitignore 管的是 Git 是否跟踪文件,不是文件的访问权限,也不会从历史提交里抹掉内容。如果你想排除的文件已经被跟踪,单改忽略规则不够;如果里面有泄露的密钥,还得处理密钥和提交历史。它也不是部署清单:文件是否随应用上线,要看构建与部署配置。

什么时候用

适合用

  • 做网站时,本地构建会反复生成输出目录;把它加入 .gitignore,让提交集中在源码修改上。
  • 开发 App 时,编辑器会在项目里生成个人配置或缓存;用忽略规则避免它们混入团队提交。
  • 运行本地测试会产生临时报告,而团队不打算保存这些报告;用忽略规则减少无关文件。

不适合用

  • 团队需要共享一份可运行的配置示例时,别忽略它;提交不含真实密钥的示例文件,让同事知道要填哪些值。
  • 你的目标是防止密钥泄露时,不能只靠 .gitignore;改用密钥管理或环境变量,并检查是否已有密钥进入提交历史。
  • 你只想让某个文件不进入线上包,但仍要在 Git 中协作修改它;改构建或部署配置,而不是忽略它。

练一练

你给网站的 dist 目录加了忽略规则,但它以前提交过,现在构建后仍显示文件变更。怎么处理?

让 AI 帮你做

请检查这个仓库,把构建产物、本地缓存和不需共享的个人配置写进 .gitignore。先列出拟添加的规则及原因,再检查这些路径是否已被 Git 跟踪;如果已跟踪,说明如何在保留本地文件的同时停止跟踪,不要直接改动提交历史。

接下来学什么