这是什么
CatHub 是一个给猫用的「代码托管平台」。它借用了 GitHub 那一套协作思路 —— 仓库、提交、分支、合并、派生、提案、工单 —— 只是把内容换成了猫的档案、体重、丑照和养猫经验。
概念对照
| GitHub 里的东西 | 在 CatHub 里叫 | 说明 |
| Repository 仓库 | 猫仓 | 一只猫一个主页,地址就是 用户名/猫仓名 |
| Commit 提交 | 记录 | 写日记、传照片、改体重,每次都生成一条带哈希的记录 |
| Blob / Tree | 照片与目录 | 照片本体按内容哈希存放,目录结构就是 git 的 tree 对象 |
| Log 历史 | 记录页 | 按日期倒序,任何提交都排在它的父提交之前 |
| Diff 差异 | 变更对比 | 看这次改了哪几行 —— 包括体重是涨了还是掉了 |
| Blame 追责 | 追责 | 每一行是谁写的。想知道谁把体重改成 5.2kg,看这里 |
| Branch 分支 | 生活分支 | 比如「减肥计划」「绝育线」,可以并行记录再合并 |
| Merge 合并 | 合并 | 能快进就快进,有分叉就生成一个双父提交 |
| Fork 派生 | 云养一只 | 把整份档案(含全部历史和照片)复制到自己名下 |
| Pull Request | 攻略修订提案 | 在独立分支上改,主人同意才合并进主线 |
| Issue 工单 | 求助 | 猫不吃粮、乱尿、半夜跑酷,都可以发 |
| Star 标星 | 投喂 | 给一条小鱼干 🍤 |
底下的实现(给好奇的人)
本站的版本控制内核是自己用 JavaScript 写的,不是调用 git 命令。它严格遵循 git 的对象格式:
- 存储内容 =
<类型> <字节数>