Ubuntu服务器中git add占满存储,如何删除暂存文件?
如何移除git暂存区的文件并释放存储空间?
嘿,我太懂你这种手滑误加超大目录的慌张了!之前在服务器上也干过类似的事,磁盘告警弹出来的时候整个人都懵了。别担心,有两种靠谱的解决方式:
方法一:用Git命令直接处理(推荐)
这是最安全的方式,不会破坏Git仓库的完整性:
- 如果要清空所有暂存的文件,直接在仓库根目录执行:
这个命令会把所有通过git resetgit add加到暂存区的文件退回到工作区状态,Git会自动释放用来缓存这些文件的存储空间。 - 如果只想移除特定的超大目录,而保留其他暂存的文件,可以指定路径:
把上面的路径换成你误添加的目录路径就行。git reset -- ./path/to/your/big-directory/
执行完上面的命令后,建议再跑一下Git的垃圾回收命令,彻底清理掉没用的缓存对象:
git gc --prune=now
--prune=now参数会立刻清理所有过期的、未被引用的Git对象,最大化释放磁盘空间。
方法二:手动找到暂存文件的存储位置(不推荐直接手动删除)
Git暂存的文件会被拆分成一个个哈希命名的对象,存储在仓库根目录下的.git/objects文件夹里。不过这些文件都是以哈希值命名的,很难直接定位到你误添加的那个大目录对应的对象,而且手动删除很容易破坏Git仓库的结构,导致仓库损坏。
所以强烈建议先用上面的Git命令处理,再用git gc清理,比手动删除安全得多。
⚠️ 注意:如果已经执行了git commit提交了误加的文件,那需要先用git reset HEAD~1回退到上一个提交(不会删除工作区文件),再按上面的步骤处理。
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

