git怎么删除已经push到远程的多余文件呀
属实没看清楚,误操作很多不该上传到git的文件
想删除红框内的三个文件夹
首先要在本地删除,然后推送到远程分支
如果直接在本地删除,然后 git add
再 git commit
那么文件只是在工作区被删除,但还留在git的历史版本记录中,空间占用不会减少。如果你是不小心commit了敏感数据(密钥之类的)这么做是非常危险的。
要真正在本地删除commit:可以先把头退回到上一个commit git reset HEAD^
然后重新commit ,或者使用 git rebase
编辑历史commit 。重新commit过后运行 git gc
和 git prune --expire now
删掉不在树上的commit对象。
然后将本地推送到远程。因为本地更改过历史commit, 可能要加上 --force
参数才能push到远程仓库并覆盖远程仓库的内容。同样,远程仓库也要 prune 才能真正把object删掉
本地删除,在把push到远程,就解决了。