如何移除本地.git文件夹中的GitHub Pages部署引用并清理空间
问题原因
- 远程分支缓存残留:你本地虽然没有创建
gh-pages本地分支,但git fetch默认会拉取远程仓库所有分支的提交对象,这些对象会存储在本地.git/objects目录中。origin/gh-pages作为远程跟踪分支的缓存数据,已经被下载到本地,这就是那些HTML/JS/JSON文件的来源。 - 引用日志与未清理对象:即便你从未创建过本地
gh-pages分支,或者曾经创建后删除了,Git也不会立刻删除对应的对象数据。reflog(Git的引用日志)会保留所有分支、HEAD的历史操作记录,这些引用会阻止对象被自动清理,导致它们一直占用空间。
清理本地无用数据的步骤
清理无效远程跟踪分支
先删除本地对origin/gh-pages的跟踪引用:git branch -d -r origin/gh-pages或者一键清理所有已在远程仓库删除的本地跟踪分支:
git fetch --prune清理引用日志并执行垃圾回收
先让reflog中所有过期引用立即失效:git reflog expire --expire=now --all再执行激进的垃圾回收,彻底清理无引用的对象并压缩仓库:
git gc --prune=now --aggressive验证清理结果
可以重新运行你之前的排查命令查看大文件是否消失,或者直接查看.git文件夹大小:du -sh .git
内容的提问来源于stack exchange,提问作者ClementNerma
相关产品推荐
相关产品推荐

