一条命令把任意 git 仓库的提交史变成「作者星轨像素星空图」:每位作者一颗恒星
(x = 首次提交 → 最近提交的时间轴位置,y = 按作者标识哈希确定性分布,
亮度/半径 = 提交数),提交密度高的时段自动叠加星云点阵。输出可嵌入 README
的 SVG 海报,或终端里的 ASCII 字符画预览。纯 Python 标准库,零依赖,
定位是「轻十倍的 gource」。
查重背景:与 gitfiti / git-draw(在贡献图上作画)部分重叠,本工具聚焦 「单命令秒出、静态、确定性、可直接嵌 README」的提交史星图。
- GitHub 贡献图只显示「有没有提交」,看不到谁、什么时候、提交了多少;
- gource 是视频渲染(重、慢、非确定性),不适合放进 README 或打印成海报;
- 简历/主页想要一张「展示你真实工程密度」的图,又不想暴露过多私人细节。
gitscape 把提交史压缩成一张确定性的星空图:同一仓库 + 同一参数,输出字节 完全一致(绝不使用未播种随机数),所以它可以放心提交进 README、CI 自动 刷新也不会抖动。
不需要安装任何第三方包(Python ≥ 3.10 即可,建议 3.11+;需要 git ≥ 2.28)。
# clone 后直接可用(项目根目录)
python -m gitscape --help可选:pip install . 后可直接使用 gitscape 命令(仅标准库依赖)。
# 在任意 git 仓库里生成 SVG 星空图
python -m gitscape --repo . --format svg --theme deep-space -o star.svg
# 终端 ASCII 预览(字符画)
python -m gitscape --repo . --format ascii --cols 100
# 换主题 / 换画布尺寸
python -m gitscape --repo . --theme aurora --width 1200 --height 700 -o aurora.svg
python -m gitscape --repo . --theme cyber --format ascii把生成的 star.svg 拖进浏览器即可查看,或直接嵌进你的 README:
| 参数 | 默认 | 说明 |
|---|---|---|
--repo PATH |
. |
目标 git 仓库路径 |
--theme NAME |
deep-space |
deep-space / aurora / cyber |
--format FMT |
svg |
svg / ascii |
-o, --output PATH |
-(stdout) |
输出文件路径 |
--width / --height |
960 / 600 |
SVG 画布尺寸(作者多时高度自动扩展) |
--cols N |
110 |
ASCII 预览宽度列数 |
--version |
— | 打印版本 |
退出码:0 成功;1 git/仓库侧错误(非 git 目录、无提交、git 缺失等,均给友好报错);
2 参数错误(如非法 --theme / --format)。
下面这张 ASCII 预览是用本仓库自身的历史生成的(在 v0.1.0 docs 收尾提交前
一刻生成,展示其余全部 7 次开发期提交,时间为 2026-08-24 → 2026-08-25,
作者仅 builder 一位;多作者仓库会得到多条星轨)。SVG 输出的结构与它同源:
- 横向时间轴:首次提交 → 最近提交;
- 每位作者一条分带,恒星越亮越大 = 提交越多,
-/:等更亮字符 = 该时间格内 提交更密集,横线覆盖 = 作者的活跃区间; - 密集时间桶会自动叠加星云散点(低亮
.字符)。
gitscape · ASCII 像素星空预览 · 主题: deep-space
1 位作者 / 7 次提交 / 2026-08-24 → 2026-08-25
. . . : . . . . | builder (7)
2026-08-24 2026-08-25 2026-08-25
- v0.1.0:git log 解析 + 确定性布局(作者哈希排序分带)+ SVG/ASCII 输出 + 三套主题
- v0.2.0:提交密度直方图叠加、多分支着色、
--since/--until时间过滤 - v0.3.0:PNG/WebP 导出(零依赖位图光栅化)、GitHub Action 自动刷新 README 徽章
- v0.4.0:更多主题 + 自定义配色(
--theme-custom color.json)、GIF 星轨动画
MIT © 2025 gitscape contributors —— 详见 LICENSE。
$ python -m gitscape --help
usage: gitscape [-h] [--repo REPO] [--theme {aurora,cyber,deep-space}]
[-f {svg,ascii}] [-o OUTPUT] [--width PX] [--height PX]
[--cols N] [--version]
把 git 提交史渲染成确定性像素星空图(每位作者一颗恒星,x=首次→最近提交时间轴,y=作者哈希确定性分布,亮度/半径=提交数,密集时段叠加星云点阵)。
options:
-h, --help show this help message and exit
--repo REPO git 仓库路径(默认当前目录)
Issues and PRs welcome - run pytest locally before submitting.