ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

LearnGitBranching Git 可视化教程:34 个关卡搞懂提交、分支与变基

LearnGitBranching Git 可视化教程:34 个关卡搞懂提交、分支与变基

LearnGitBranching Git 可视化教程:34 个关卡搞懂提交、分支与变基

【免费下载链接】learnGitBranchingAn interactive git visualization and tutorial. Aspiring students of git can use this app to educate and challenge themselves towards mastery of git!项目地址: https://gitcode.com/gh_mirrors/le/learnGitBranching

在终端敲完git rebase,你确定知道它到底改了什么吗?LearnGitBranching 是一款免费的交互式 Git 可视化工具与关卡式教程,它把每一次 commit、merge、rebase 都变成会动的提交树动画,让你用 34 个关卡亲手"看穿"Git 的运作方式,而不是靠死记命令。

🧭 项目速览:它到底解决了什么问题

先说结论:命令行只能告诉你命令执行完了,LearnGitBranching 告诉你命令做了什么。

它是一个 100% 运行在浏览器里的 Git 仓库可视化器 + 沙盒 + 教学关卡系统。你在底部的输入框敲入命令,旁边的提交树会实时更新,分支指向哪、HEAD 落在哪,一目了然。

和传统学习方式的对比:

学习方式优点短板
图文教程概念解释细致提交树停留在纸面,缺乏直觉
真实项目里练手场景最真实试错成本高,搞乱了很难恢复
LearnGitBranching即时可视化 + 随时重来偏学习场景,替代不了真实项目

它最大的价值一句话:把"抽象的提交图"变成"可操作的实验台",试错的代价约等于零。

🚀 快速上手:3 条路径任选其一

路径一:在线体验。直接搜索 LearnGitBranching 进入官方演示站点即可,有完整模式和演示模式两种入口,无需安装任何东西,打开就能敲命令。

路径二:本地构建(推荐想改源码或离线使用的人)。只需三步:

git clone https://gitcode.com/gh_mirrors/le/learnGitBranching cd learnGitBranching yarn install && yarn gulp fastBuild

构建完成后,用浏览器打开仓库根目录生成的index.html就能玩了。相关流程说明可参考 README.md 和构建配置 gulpfile.js。

路径三:Docker 一键跑。如果你习惯容器化环境,一条命令拉起:

docker run -p 8080:80 ghcr.io/pcottle/learngitbranching:main

然后访问http://localhost:8080。镜像构建脚本在 Makefile 里。

🎮 功能全景:按使用场景拆解

不按代码模块讲,按"你会在哪种场景用到它"来讲。

场景一:自由沙盒,随便折腾

应用默认启动在沙盒模式(源码见 src/js/sandbox/),预建了一个基础仓库。你可以:

  • 输入任意 Git 命令观察提交树动画
  • 敲undo撤销上一条命令的影响
  • 敲reset回到干净状态,关卡中同样有效
  • 用git clone模拟远程仓库,体验本地与远端的双树结构

给同事做 Git 演示?切到沙盒模式现场输入命令,效果比 PPT 直观得多。

场景二:关卡闯关,系统过一遍 Git

输入levels查看全部课程与完成进度。34 个关卡按 7 个章节组织(定义在 src/levels/):

  • 基础篇(intro):提交、分支、合并、变基四步走
  • 高级篇(rampup):detached HEAD、相对引用、撤销变更
  • 移动提交(move):cherry-pick 与交互式变基
  • 杂项(mixed):抓取单个提交、打 tag、git describe
  • 高级话题(advanced):多次 rebase、多父提交、选择性变基
  • 远程篇(remote):clone、fetch、pull、push、协作模拟,共 16 关,目录在 src/levels/remote/

附加彩蛋是"Git 高尔夫":每个关卡记录你用了多少条命令,去挑战官方记录吧。

场景三:自己造关卡,把知识传出去

输入build level,对话框会一步步引导你定义起始状态、目标状态与提示文案,最后生成一段 JSON。你可以把它分享给别人直接import level导入,或者通过 URL 参数分发——这意味着团队内部可以沉淀出属于自己工作流的练习关卡。构建逻辑在 src/js/level/builder.js。

场景四:一键分享复现现场

通过commandURL 参数,你可以把任意一组命令编码进链接,别人打开页面会自动回放这些操作。配合NODEMO参数跳过开场引导,非常适合在文章或讲义里嵌入"可运行的 Git 演示"。

场景五:多语言界面

内置 20 多种语言(含简体中文、日语、韩语、法语、俄语等),界面与关卡文案都做了本地化,定义集中在 src/intl/ 下,切换语言即可使用母语闯关。

👥 适用人群与典型场景

  • 零基础的 Git 新手:从第一个 commit 开始建立"提交就是一张图"的直觉,比背命令表高效。
  • 科班学生:课程作业前突击 rebase、merge 概念,几分钟就能把知识串成线。
  • 想补齐盲区的中高级开发者:reset --hard到底动没动工作区?pull --rebase和pull差在哪?进沙盒里亲手验证一次就忘不了。
  • 技术负责人与讲师:沙盒模式就是现成的讲台,现场输入命令,全员看到同一棵会动的提交树。

🏗️ 技术栈一览

层选型
UI 框架React 17 + Backbone + Flux(状态管理)
可视化Raphael(SVG 绘制提交树与动画)
DOM 工具jQuery
构建Vite 开发 + Gulp 生产构建
包管理Yarn
测试Jasmine
部署纯静态页面,无后端、无数据库、无 AJAX

整个应用是 100% 客户端的——生产版本就是一个 HTML 加一堆 JS/CSS,所以它才能被打包成 Docker 镜像随手跑起来。命令解析核心在 src/js/git/,可视化层在 src/js/visuals/。

⚠️ 避坑指南与进阶建议

  1. 犯错就回退,别慌。undo回退一步,reset推倒重来。沙盒里的任何操作都可逆,大胆试。
  2. 先沙盒,后关卡。对某个命令没把握时,先在沙盒敲一遍看动画,再进关卡做约束训练,通过率会高很多。
  3. 用 Git 高尔夫逼自己精简。完成关卡后回头看:能不能少一条命令?这是养成"最短路径思维"的好办法。
  4. 别只刷基础篇。远程篇的 16 个关卡(fetch/push 的参数组合)才是团队协作里的重灾区,值得反复练。
  5. 遇到可疑 Bug?在浏览器控制台执行debug_copyTree(),能导出当前完整状态,方便提 issue 时精确复现。
  6. 想参与贡献?先看 CONTRIBUTING.md,用yarn gulp build跑测试和 lint 后再提交。

🎯 写在最后

走完 34 个关卡,你会带走这些能力:看懂任意一棵提交树、熟练运用分支/合并/变基三件套、在真实场景下正确选择 fetch 与 pull、敢于修改提交历史而不恐惧。这些能力会直接迁移到你每天的项目里。

别收藏了——现在打开沙盒,敲下你的第一条git commit,让提交树先动起来吧。

【免费下载链接】learnGitBranchingAn interactive git visualization and tutorial. Aspiring students of git can use this app to educate and challenge themselves towards mastery of git!项目地址: https://gitcode.com/gh_mirrors/le/learnGitBranching

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进