Phpstorm与Git问题:已提交文件夹移除失败及排除文件夹仍显示
问题解决指南
1. 无法移除已提交的bower_components文件夹
你遇到的提交失败问题,大概率是IDE与Git命令行状态不同步导致的,试试完全用命令行操作绕开IDE的缓存问题:
- 第一步:先确保项目根目录的
.gitignore里已经添加了public/bower_components/,避免后续误提交该文件夹 - 第二步:在项目根目录执行命令,将该文件夹从Git追踪列表中移除(不会删除本地文件):
git rm -r --cached public/bower_components - 第三步:执行
git status确认状态,你应该能看到一堆deleted: public/bower_components/xxx的条目 - 第四步:直接用命令行完成提交和推送:
git commit -m "Stop tracking bower_components folder" git push origin master
如果还是报错,可以检查下远程分支是否有未拉取的更新,但你说已经和origin/master同步,那命令行操作基本能解决IDE的状态不同步问题。
2. public/node_modules和public/semantic仍出现在提交窗口
PhpStorm标记为Excluded只是IDE层面的排除规则,和Git的追踪逻辑无关。这两个文件夹之前大概率已经被Git追踪过,所以哪怕你后来加了.gitignore,Git还是会继续显示它们。解决步骤:
- 先把它们从Git的追踪列表中移除:
git rm -r --cached public/node_modules public/semantic - 确认
.gitignore里已经添加了这两个路径:public/node_modules/ public/semantic/ - 提交移除追踪的操作和
.gitignore的修改:git add .gitignore git commit -m "Stop tracking node_modules and semantic folders" git push
完成后这两个文件夹就不会再出现在提交窗口里了。
3. vendor文件夹为什么没显示?
你用Symfony的composer create-project命令创建项目时,Composer会自动生成一个默认的.gitignore文件,里面已经包含了vendor/这一行配置!所以Git从项目创建之初就没有追踪vendor文件夹,自然不会出现在提交窗口中。你可以打开项目根目录的.gitignore文件看看,肯定能找到vendor/的忽略规则。
另外提个小建议:以后添加新的忽略路径时,先通过git ls-files | grep 文件夹名检查该路径是否已经被Git追踪。如果已经被追踪,必须先用git rm --cached移除追踪,再提交.gitignore的修改,否则.gitignore不会生效哦。
内容的提问来源于stack exchange,提问作者Etshy
相关产品推荐
相关产品推荐

