误提交大文件执行reset后.git文件夹仍过大,如何删除冗余pack文件瘦身?
Git提交大文件后reset仍无法减小.git文件夹体积的解决方案
核心原因
执行git reset --hard回退错误提交后,Git的reflog机制仍会保留历史提交的引用记录,你误提交的大文件对象仍然被reflog引用,因此你之前执行的gc、prune命令无法将其识别为可清理的冗余对象,自然不会删除.pack文件中对应的大文件内容。
操作步骤
- 第一步:清除所有过期的reflog引用,解除对错误提交的关联
执行命令:git reflog expire --expire=now --all - 第二步:执行强制GC清理冗余对象
执行命令:git gc --prune=now --aggressive
验证效果
操作完成后查看.git/objects/pack目录下的.pack文件,体积会回落至1MB左右的正常水平,且不会影响当前分支的所有有效提交。
内容的提问来源于stack exchange,提问作者ZYinMD
相关产品推荐
相关产品推荐

