什么是 Serie?
Serie 是一个浏览 Git 仓库历史的终端界面。它展示的内容与 git log --graph --all 相同,但提交图是通过终端模拟器的内联图像协议绘制的,而不是用 ASCII 字符拼凑,因此分支与合并一眼就能看清。图旁边是可滚动、可搜索的提交列表,还有提交详情视图。它有意只做查看器,而不是 Git 客户端:不提交、不建分支、也不推送。
⚡ Serie 的主要功能
🖼️ 真正的提交图
提交图通过 Kitty 或 iTerm2 协议以图像方式渲染,即使几十条分支并行,分支线依然清晰可读。
🔍 可搜索的历史
图旁边就是可滚动、可搜索的提交列表,不必再翻 git log 的输出。
📄 提交详情视图
选中某个提交即可查看提交信息、引用和差异,无需离开提交图。
🎛️ 提交图选项
按时间或拓扑排序、单倍或双倍宽度的单元格、圆角或直角连线——在命令行或配置文件中设置一次即可。
⌨️ 自定义按键
? 会显示当前按键,而所有按键都能在 config.toml 中覆盖。
🧰 用户命令
对选中的提交运行你自己的命令:在专用视图中显示输出、在后台执行,或挂起 Serie 去跑交互式程序。
apt upgrade 就能让你保持最新。
📦 从 deb.griffo.io 安装
第 1 步:添加仓库
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt update🆓 有一个永久免费的镜像。 deb-free.griffo.io 永久免费提供软件包 — 无需账号、无需订阅,最多落后上游 2 个月,安全修复立即发布。目前收录 cliamp、Ghostty、lazydocker、Oh My Posh 和 Zed;Serie 不在其中,因此今天只能通过上面的仓库安装 — 提出请求即可将其加入。
第 2 步:安装 Serie
# 安装最新版 Serie
sudo apt install serie
# 验证安装
serie --version# 安装最新版 Serie
apt install serie
# 验证安装
serie --version第 3 步:在仓库中运行
# Serie 读取当前目录下的仓库
cd /path/to/your/repo
serie
# 任何时候按 ? 都能查看按键绑定
# 如果提交图没有出现,就显式指定图像协议
serie -p kitty
# 可选的配置文件,用于按键与默认值
mkdir -p ~/.config/serie
$EDITOR ~/.config/serie/config.toml🎯 基本用法示例
浏览历史:
# 当前仓库的完整历史
serie
# 只看最近的提交,适合超大仓库
serie -n 5000
# 使用拓扑排序而非时间排序
serie -o topo
# 启动时选中 HEAD,而不是最新的提交
serie -i head让提交图适配你的终端:
# 自动识别不准时,强制指定图像协议
serie -p kitty
serie -p iterm
serie -p kitty-unicode
# 窗口较小时使用更窄的图形单元格
serie -g single
# 使用直角连线代替圆角
serie -s angular
# 或者在宽终端上使用宽松的圆角外观
serie -g double -s rounded配置与日常使用:
# 配置文件,用于按键与默认值
mkdir -p ~/.config/serie
$EDITOR ~/.config/serie/config.toml
# 或者让 Serie 使用别处的配置文件
SERIE_CONFIG_FILE=~/dotfiles/serie.toml serie
# Serie 只读取历史——git 仍然是你的客户端
git -C ~/src/project log --oneline -5
# 所以提交依然是 git 的工作
git commit -v🔧 工具集成
Serie 需要两样东西,并与第三样协作:
- git:一个普通的 Git 仓库,以及
git程序本身——软件包已将其列为依赖 - 你的终端:支持 Kitty 或 iTerm2 内联图像协议的模拟器——Ghostty、Kitty、WezTerm 和 iTerm2 都符合
- 配置文件:
$XDG_CONFIG_HOME/serie/config.toml,或SERIE_CONFIG_FILE指向的文件 - 用户命令:把
git diff、编辑器或自己的脚本绑定到某个按键,对选中的提交执行 - 你的 git 客户端:Serie 有意不提交也不推送,因此它与 lazygit、GitUI 或原生 git 并存,而不是取代它们
🚀 为什么选择 deb.griffo.io?
- 官方 Ubuntu:完全没有收录 Serie——标准系统上无从安装
- cargo install --locked serie:版本较新,但每台机器都需要 Rust 工具链并现场编译,且不在 apt 之内
- 上游压缩包:官方二进制文件,每个版本都要手动重新下载
- deb.griffo.io:最新版本,并自动更新
- ✅ 年轻且迭代迅速:用户命令、自定义按键和提交图选项都是在普通版本里加入的——最新版本和一年前的版本几乎是两个工具
- ✅ 唯一的 apt 来源:Debian 与 Ubuntu 官方源都没有 Serie;本仓库打包官方上游构建
- ✅ 自动更新:上游发布后数小时内更新软件包
- ✅ 诚实的打包:上游二进制文件安装为
/usr/bin/serie,并把git声明为依赖;上游没有手册页和补全,本包也不会自行编造 - ✅ 两种架构:amd64 和 arm64,都是 musl 静态构建,没有库依赖
- ✅ 多发行版:支持 Ubuntu 22.04、24.04、25.10 和 26.04
- ✅ 易于维护:使用标准 apt 命令即可更新
📦 软件包构建仓库
Ubuntu 软件包在这个 GitHub 仓库中自动构建和维护:
- 🌳 serie-debian - 最新版本构建
🔗 相关软件包
deb.griffo.io 同样提供:
- Ghostty - 通过 Kitty 协议绘制提交图的终端
- lazygit - 终端 git 界面,补上 Serie 有意不做的部分
- Jujutsu - 兼容 Git 的版本控制系统,变基体验一流
- Forgejo - 自托管代码平台,正是这些历史的来源
git log --graph 只给你一堆竖线和星号、根本看不懂的时刻。