忽略文件 .gitignore
项目里出现了 .env、node_modules 或构建产物,你不想把它们误提交进仓库。
Git约 10 分钟 · 从真实需求理解
1.gitignore 在过滤什么?
CANDIDATES → PATTERN MATCH → STATUS FILTER,.gitignore 只隐藏命中的未跟踪文件。
*.envnode_modules/local-only paths·.envSCAN
·node_modules/SCAN
+src/main.tsKEEP
new paths foundgit check-ignore -v .envchecking rule source…rule source is visible.gitignore 是一组路径匹配规则。Git 扫描到还没有被跟踪的文件时,如果路径命中规则,就不会把它当成待提交的新文件显示出来。
- 规则常用来排除 .env、node_modules、构建产物和本机临时文件。
- 忽略不是删除:被忽略的文件仍然在你的电脑上。
- 已经被 Git 跟踪的文件不会因为后来加进 .gitignore 就自动停止跟踪。
2.gitignore 不等于删除、Discard 或撤销跟踪
.gitignore 只影响未被跟踪的路径是否出现在 Git 的候选状态里。它不会删除文件,也不会把已经提交过的文件从历史中抹掉。Discard 才是在放弃当前改动,Commit 则是在保存历史。
- 把 .env 加入规则后,文件还在本地,但不会被误提交。
- 如果文件已经被跟踪,需要用明确的 Git 操作取消跟踪,再让规则接管。
团队项目应共享适合项目的规则,同时避免把真正需要提交的配置模板也一起忽略。
3.gitignore 由哪些部件组成?
规则过滤的是 Git 的候选状态,不是本地文件本身;命中来源可以被追溯。
把 .gitignore 拆开看,规则写在文件里,候选路径等待匹配,Git status 呈现过滤后的结果,命中证据则告诉你是哪一行规则起作用。
- RULES 是 .gitignore 里的模式,例如 *.env。
- CANDIDATES 是 Git 扫描到的本地路径。
- STATUS 是过滤后仍需要你处理的路径。
- EVIDENCE 是 check-ignore 给出的规则来源。
4怎样把 .gitignore 需求交给 Agent?
请为项目补充 .gitignore 规则:忽略 .env、node_modules/ 和构建产物,但保留 .env.example 与 src/main.ts;展示 Git status 过滤后的结果,并用 git check-ignore -v 解释 .env 命中了哪条规则。请把 .gitignore、Discard、Stash、Commit 和删除文件区分开,支持共享重播、Anatomy 键盘操作、暗色主题和 390px、320px 窄屏。
5不用背,看看你能不能判断
1 / 3
.gitignore 主要决定什么?
请选择一个最符合题意的答案
社区延伸
看别人真实遇到过什么
社区帖子还没有关联到这个词条。