惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
J
Java Code Geeks
F
Fortinet All Blogs
Blog — PlanetScale
Blog — PlanetScale
P
Proofpoint News Feed
U
Unit 42
B
Blog
宝玉的分享
宝玉的分享
腾讯CDC
Microsoft Azure Blog
Microsoft Azure Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
博客园 - Franky
博客园 - 三生石上(FineUI控件)
人人都是产品经理
人人都是产品经理
Martin Fowler
Martin Fowler
博客园_首页
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
云风的 BLOG
云风的 BLOG
L
LangChain Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
博客园 - 叶小钗

kkocdko's blog

Tasker 永久试用修改思路 - kkocdko's blog 极限压缩文档扫描件 - kkocdko's blog Bypass the Blank Chars Detection crknob - Chrome portable patch 我如何将博客首页体积降至 3 KB - kkocdko's blog 如何极限优化压缩文件体积 - kkocdko's blog EmEditor 精简版 - kkocdko's blog Backup Data from VSCode Web 优雅地游玩 Minecraft - kkocdko's blog 让程序以管理员权限运行的 PE 清单 - kkocdko's blog 注销 ZEIT 账号之后遇到的坑 - kkocdko's blog 本博客的协议已更改为 CC0 - kkocdko's blog mobp - 使 MSOffice 后台常驻 在安装 VS 生成工具时规避 .NET 安装错误 各种格式的占位空文件 - kkocdko's blog 优雅地游玩 Flash 游戏 - kkocdko's blog WPS 2016 极限精简版 - kkocdko's blog Convert Const to Let by Terser 规避 Visual Studio 许可证过期的 Bug 方便地使用 iPod - kkocdko's blog 用 UserJS 注入 UserCSS - kkocdko's blog 注册表修改文件关联(默认程序) - kkocdko's blog 周期精准的太阳系模型 - kkocdko's blog 关闭屏幕的 WinAPI - kkocdko's blog 重置 Windows 图标缓存 - kkocdko's blog AIDA64 极限精简单文件版 - kkocdko's blog 几何画板单文件精简版 - kkocdko's blog 世界之窗浏览器单文件版 - kkocdko's blog 在 MBR + Legacy 下用 Bootmgr 引导 Ubuntu 简洁的 Markdown 预览工具 - kkocdko's blog
优化 Git 仓库的额外提示 - kkocdko's blog
2026-04-11 · via kkocdko's blog

当你发现 .git 目录有点大了,随手 Google 一下“optimize git repo”,“reduce repository size”之类的关键词然后照做就行,无非是删多余分支以及历史中的大文件然后 gc,repack 什么的。但这里有几点额外提示:

注意远程服务器的更改

按大多数教程完成操作后,本地的体积减小了:

# 折腾一番然后 git push --force (小心!)
$ ~/misc/apps/dua # 1.57 MB .git

但你或许会遇到从远程 Clone 得到仓库体积不变的情况:

git clone https://github.com/kkocdko/kblog .
$ ~/misc/apps/dua # 3.92 MB .git

这有很多可能的原因。例如本地删了分支但远程没删,对于 GitHub 可以在 github.com/user/repo/branches 删掉,其他平台也类似。

也可能是某个 Commit 打了 Tag,造成一些我们希望不可达并被 Trim 掉的 Object 变为可达。在 GitHub 上尝试访问这种 Tag 会显示为:

这时候记得删掉(或备份重建)所有 Tag 就行了。当然若是自己的服务器或者不关心 GitHub 上的 Star 数量那自然删库重新 Push 上去万事大吉。

有关 git-filter-repo

newren/git-filter-repo 挺好用,值得尝试。但在使用前如果你已经执行过 gc,repack 等操作,那么我建议先将 pack 文件解开

mv .git/objects/pack/ ./git_objs/
git unpack-objects < ./git_objs/*.pack
rm -rf ./git_objs/

之后再执行 --analyze 等操作时,速度会更快一些。当然最后别忘了再 repack 回来。

commit-graph 相关报错

重写了一些历史 Commit 后,偶尔会出现以下报错:

failed to parse commit ... from object database for commit-graph
....89 more

这时只需 git commit-graph write 就行了。