在 PhpStorm 中添加 .gitignore 规则只需在项目根目录创建或编辑 .gitignore 文件,Git 原生生效;已跟踪文件需先 git rm --cached 再忽略;IDE 设置中的“Ignored Files”仅影响界面显示,不影响 Git 实际行为。
PhpStorm里怎么加.gitignore规则
直接在项目根目录新建或编辑 .gitignore 文件就行,phpstorm 本身不提供图形化“添加忽略”的入口,它完全依赖 git 的原生机制。你改了文件,下次 git status 就会自动生效。
常见错误是以为要在 PhpStorm 设置里点几下就能忽略——其实那些设置(比如 Settings > Version Control > Ignored Files)只影响 IDE 自己的文件状态高亮和提交弹窗预览,**不影响 Git 实际行为**。真正起作用的只有 .gitignore。
- 如果文件已提交过,先用
git rm --cached <file></file>把它从暂存区移除,再加进.gitignore - 路径写法要按 Git 规则:用
/开头表示项目根目录;**/表示任意层级;vendor/末尾斜杠表示只忽略目录 - PhpStorm 的「Mark Directory as > Excluded」只是本地隐藏,对 Git 零作用,别混淆
为什么有些文件加了.gitignore还是被Git追踪着
最大概率是这些文件已经被 Git 记录过了。Git 不会因为后来加了 .gitignore 就自动停止追踪已跟踪的文件——它只管“新文件要不要开始跟踪”。
典型场景:你初始化项目后立刻 git add .,再补 .gitignore,结果 vendor/、var/cache/ 全在版本库里。这时候得手动清理:
- 运行
git ls-files --ignored确认哪些文件当前被.gitignore匹配但仍在索引中 - 批量清除已跟踪但应忽略的:
git rm -r --cached . && git add . && git commit -m "update .gitignore" - 注意
git rm --cached不删本地文件,只从 Git 索引里移除
PhpStorm提交时还显示被忽略的文件怎么办
这是缓存没刷新或规则没生效的信号。IDE 提交窗口列出的文件,来自 Git 当前工作区状态,但 PhpStorm 有时会因索引延迟显示旧状态。
立即学习“PHP免费学习笔记(深入)”;
优先检查三件事:
- 确认
.gitignore文件本身在项目根目录,且编码是 UTF-8 无 BOM - 执行
git check-ignore -v vendor/autoload.php(换成你要查的路径),看是否真被匹配、哪一行规则生效 - 在 PhpStorm 里点
VCS > Git > Refresh File Status,或者右键项目根目录选Reload project from VCS - 如果用了全局
.gitignore(git config --global core.excludesfile),它和项目级规则叠加,容易误判,建议只用项目级
PHP项目常用该忽略哪些路径和文件
不是所有“看起来不该提交”的东西都该进 .gitignore。比如 composer.lock 必须提交,而 vendor/ 绝对不能。
典型 PHP 项目推荐规则(写进项目根目录 .gitignore):
-
vendor/— Composer 包目录,体积大且可重装 -
var/cache/、var/log/(Symfony)或storage/logs/、storage/framework/(Laravel)— 运行时生成,含环境敏感数据 -
.env— 环境变量文件,绝不提交;但可以留.env.example -
phpunit.xml.dist可以提交,但phpunit.xml(含本地配置)建议忽略 - 避免写
*.log这种宽泛规则,容易误伤需要提交的日志模板文件
复杂点在于不同框架目录结构差异大,var/ 在 Symfony 是缓存,在其他项目可能是源码。得看自己项目实际生成路径,别照抄。

















