<!-- title: 《Oh My Git》把最吓人的命令行，做成一副卡牌 -->
<!-- domain: games -->
<!-- repo: git-learning-game/oh-my-git -->

# 《Oh My Git》把最吓人的命令行，做成一副卡牌

每个程序员都经历过那一幕：`git reset` 敲下去的瞬间手心冒汗，`rebase` 之前先截图留证。Git 是程序员日常工具里被诅咒次数最多的一个，命令像咒语，报错像天书。德国有两个开发者看准了这份恐惧，把它做成了一副卡牌游戏——你拖一张"commit"卡，屏幕上的仓库图谱就实时长出一个新节点。这个项目叫 **Oh My Git!**，开源、免费、不卖一分钱，但它的钱路值得每个想做独立游戏的开发者抄一遍。

## 仓库档案

| 项目 | 信息（2026-10-02 查证） |
|---|---|
| 仓库 | git-learning-game/oh-my-git |
| Star / Fork | ⭐ 2,893 / 218（据 GitHub API） |
| 主语言 | GDScript（Godot 3 引擎） |
| License | Blue Oak Model License 1.0.0（README 声明） |
| 作者 | bleeptrack（Sabine Wieluch，艺术家/创意技术专家，乌尔姆大学神经网络研究所在读博士）与 blinry（Sebastian Morr，德国计算机科学家/程序员/设计师），两人核心团队 |
| 创建时间 | 2020年3月 |
| 最近推送 | 2025年12月，项目自称处于“低维护模式” |
| 发行渠道 | itch.io 免费下载（Windows/macOS/Linux），官网 ohmygit.org，无网页版 |
| 资金 | 2020/2021年获德国 Prototype Fund 六个月资助 |

组织账号 `git-learning-game` 看着像机构，其实背后就两个人加一群社区贡献者，是标准的"2+N"小团队结构。代码量也不吓人：核心逻辑 GDScript，加上卡牌界面和实时图谱渲染，属于个人开发者通读一周就能吃透的量级。

## 这游戏是什么

一句话：**在一个游戏沙盒里，用真实 Git 命令解谜闯关，仓库内部结构全程画在你眼前。**

每关屏幕上摆着一个可视化仓库——分支、提交、HEAD、暂存区全是活着的图形。左上角是任务描述（“把 feature 分支合并进 main”），你手里有两种操作方式：拖卡牌（每张卡是一个 Git 命令，自带说明和图标），或者打开内置终端直接敲任意命令。游戏里跑的是**货真价实的 Git**，不是模拟器。每敲一条，图谱立刻重绘，你能看见 `git branch` 在图上掰出新岔路、`git merge` 把两条历史拧成一股。游戏每关结束自动跑一段 Bash 脚本检查仓库状态，返回 0 就过关。关卡按章节组织：intro、index、branches、merge、remotes、stash、tags、bisect，甚至有一章就叫 **shit-happens**——专教搞砸了怎么救回来。

```mermaid
flowchart TD
    A[进入关卡：读任务描述，看目标图谱] --> B{选择出牌方式}
    B -->|拖一张卡牌| C[执行真实 Git 命令]
    B -->|终端自由输入| C
    C --> D[仓库图谱实时重绘<br/>分支、提交、HEAD 全部画出来]
    D --> E{过关判定：自动运行 win 脚本}
    E -->|返回 0| F[过关音效加庆祝文案，解锁下一关]
    E -->|返回非 0| G[图谱停在当前状态，零惩罚]
    G --> B
    F --> H[通关后意犹未尽？<br/>照关卡格式写一关，提 PR]
    H --> I[关卡合入主线<br/>全世界玩家玩你出的题]
    I --> A
```

## 为什么上头

它没有血条没有金币，但把几套经典上头机制全都用上了，而且用在了程序员最痛的地方。

**第一，反馈延迟约等于零。** 教程里学 Git 的最大障碍是“我敲了命令，但脑子里什么都没发生”——文件变了，可概念还是抽象的。这游戏把你做的每件事画出来：提交是一颗新节点，分支是一条新岔路，`reflog` 是挂在旁边的书签。输入到看见结果之间没有一步多余的等待，这种即时可视化反馈正是俄罗斯方块、2048 让人停不下来的底层配方，只不过奖励物从分数换成了“啊，原来如此”。

**第二，零风险沙盒拆掉了恐惧墙。** 现实中没人敢拿公司仓库练 `rebase -i`，怕搞坏的心智成本让大多数人永远停留在 add/commit/push 三连。游戏里乱敲命令没有任何代价，图谱停在哪儿都可以从头再来。恐惧一旦移除，探索欲立刻接管——这正是 shit-happens 这一章存在的意义：它不是教你不犯错，而是示范搞砸了也不可怕。

**第三，能力解锁式的进度感。** 十三个章节是一条技能树：先学会暂存和提交，再解锁分支、合并、改写历史（changing-the-past）、储藏、标签、二分排错、远程协作。每过一关，真实世界里的你就多会一招——游戏进度和职业技能同步增长，这种“我在变强”的实感比任何经验条都值钱。

**第四，双难度曲线兜住两头。** 新手拖卡牌，卡面就是文档；老手直接开终端玩真的。同一关可以有多种解法，游戏全认。胜利条件不是“你用了某条命令”，而是“仓库到达了目标状态”——目标图谱就画在旁边，你永远知道自己离过关差几步。

**第五，UGC 飞轮。** 关卡是纯文本文件，格式简单到 `[setup]` 放初始化命令、`[win]` 放判定脚本。玩家通关后顺手写一关提 PR，内容众包让游戏自己长大。这套“玩家即关卡设计师”的循环，是很多商业游戏花大价钱都买不来的。

## 技术拆解

这个仓库对开发者的价值，一半在游戏，一半在架构。四个可直接抄走的点：

**真实 Git 而非模拟器。** 游戏内嵌了一个真正的 Git，所有命令跑在真实的仓库上，可视化层只是把 `.git` 目录里的对象、引用、HEAD 位置解析出来画成图。这个分层——“真实工具执行 + 状态可视化渲染”——是任何 CLI 教学游戏都通用的骨架。

**关卡即数据。** 一个关卡一个文本文件，五个区段：`[description]` 任务描述、`[cli]` 命令提示、`[congrats]` 过关文案、`[setup]` 用 Bash 初始化仓库、`[win]` 用 Bash 判定过关。内容和引擎彻底解耦，不会写 GDScript 的人也能出题。更妙的是 `[setup 远程名]`、`[win 远程名]` 这种多仓库区段——所有仓库自动互加 remote，于是教协作流程和教单机操作用的是同一套机制，不需要额外的联机代码。

**卡牌即文档。** 卡牌界面把“命令、说明、图标”压进一张卡，操作与教学合二为一。这个设计对任何“命令行工具游戏化”的项目都成立：卡牌降低记忆负担，终端保留自由度。

**两处彩蛋级的细节。** 一是许可证选了 Blue Oak Model License——一份专门为“防专利讹诈”设计的现代许可证，README 里还顺手安利“值得一读”；二是仓库 2025 年底最后一次推送后进入低维护模式，README 写得非常坦诚：简单修复会合并，大改动请先来聊。这种诚实本身就是开源项目的品牌资产。

想复用的话，最有价值的三个组件是：仓库图谱实时渲染器、关卡文件加载器加 Bash 判定器、卡牌式命令 UI。搬去 Web 技术栈（比如用 isomorphic-git 或直接调 git CLI）并不难。

## 变现观察

先说结论：这个游戏**没有一分钱直接收入**。itch.io 免费下载，没有内购、没有广告、没上 Steam，官网唯一的“求支持”是两个 Patreon 链接。

它真正的钱来自 **Prototype Fund**——德国联邦教育及研究部（BMBF）出资、Open Knowledge Foundation Germany 运营的公共创新基金，专门资助开源和公益向的数字项目。两位开发者拿了六个月工资，把游戏做出来后开源给全世界。这是“付钱的人不是玩家”的典型模型：玩家是受益者，纳税人通过基金付账。官网当年那句"Our current funding will run out at the end of February"也诚实得可以——资助到期，项目转入低维护，非常真实。

这条路对个人开发者的启发在于：**教学类游戏的变现客户天然不是 C 端玩家，而是机构。** 同类产品里跑通的案例清一色印证这一点——CodeCombat 靠学校采购和订阅，Vim Adventures 直接付费，Human Resource Machine、EXAPUNKS 这类“编程游戏”在 Steam 卖买断也验证了知识型游戏有人买单。国内对应的路径是各地文创科创基金、开源社区资助、高校实验课程采购、企业内训定制。重点是换脑子：别盯着“玩家愿意付多少”，去想“哪个机构愿意为这个教学效果付多少”。

## 给我的灵感

**点子一：换壳做「Oh My SQL / Oh My Docker」。** 这游戏最值钱的不是 Git，是“关卡文件 + setup 初始化 + win 脚本判定 + 实时图谱”这套四层架构。换成 SQL（可视化表关系和查询结果）或 Docker（可视化容器与镜像层），架构原封不动。MVP 工作量 2-4 周（Web 技术栈可以完全绕开 Godot）。变现走 B 端：卖给培训机构做配套练习，或企业内训授权——一个新员工入职实训场景就值回票价。

**点子二：网页轻量版吃短视频流量。** 原版必须下载桌面端，这是它传播的最大瓶颈。砍到只保留 add、commit、branch、merge 四张卡的“Git 闯关 H5”，五分钟玩完，配一个“你的分支策略是哪种人格”的分享页，往抖音、小红书、B 站发“程序员水平测试”内容引流。变现：网页广告打底，高级章节 9.9 到 29.9 买断解锁。MVP 两周以内，一个人能做。

**点子三：每日一题加 AI 考官。** shit-happens 章节天然是个“搞砸仓库”题库。每天发布一道“这个仓库被前同事搞坏了，修好它”，限时、连续打卡、好友排行；玩家自由敲命令，接一层 LLM 当考官——不给答案，只读 win 脚本和当前仓库状态给提示。变现是订阅题库，更进一步是企业招聘测评：让候选人在沙盒里修仓库，付费方是 HR。注意这和 Prototype Fund 是同一个逻辑的当代版本——把付钱的人从玩家换成受益的机构。

最后别漏了它自带的运营机制：关卡即 PR。你的教学游戏上线第一天就该内置“玩家出题”通道，UGC 内容成本趋近于零，而每一条被合并的 PR，都是一位自带流量的布道者。

## 上手

- 仓库：https://github.com/git-learning-game/oh-my-git
- 官网：https://ohmygit.org
- 下载（Windows/macOS/Linux，免费）：https://blinry.itch.io/oh-my-git
- 无网页 Demo，需下载桌面端；想改代码请装 Godot 3（Godot 4 尚不支持），`godot scenes/main.tscn` 直接起游戏，关卡都在 `levels/` 目录里等你写。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
