AI 会操作,人为什么还要学 Git?

September 7, 2026 · View on GitHub

English | 中文

AI 可以替我们完成越来越多的操作。但一个人能提出什么问题、看见哪些选择、判断什么结果,仍然受到自身理解的影响。脑中没有一个概念,遇到问题时就很难想到使用它,也很难发现一个看似合理的答案漏掉了什么。

这是我继续维护这个仓库的原因:把值得传承的工程思想讲清楚,让人在 AI 的帮助下做出有根据的判断。

学习的重心正在改变

过去,学习工具常常意味着把两件事一起学会:理解它的设计,熟练执行它的操作。时间有限时,容易先记住命令,再把原理留到以后。

现在,Agent 可以承担大量操作,理解的重要性变得更明显。知道“可以把改动拆开验证”,才会想到要求 Agent 拆分提交;知道“分支只是引用”,才会在误删分支后先检查提交是否仍然存在;知道“工作区和 Index 可以不同”,才会追问测试与提交是否对应同一份代码。

这也不意味着操作知识失去价值。人仍需要读懂关键命令、识别破坏性操作,并在小实验里验证自己的理解。实践让抽象概念有证据,AI 可以帮助我们降低实践成本。

为什么用 Git 来学习这些思想

Git 把几种很有生命力的设计组合在一起:以内容标识对象,用快照记录状态,用引用命名历史,用共同祖先理解分歧。这些思想可以迁移到缓存、制品、协作和系统恢复等问题中。

几个容易混淆的边界尤其值得学:

  • commit 关联快照,branch 指向 commit。 分支本身不是一份文件副本。
  • Index 描述完整的下一份快照。 它不只是一个“待提交文件名列表”。
  • 内容身份不等于内容正确。 对象 ID 能标识版本,不能证明业务逻辑正确,也不能代替作者身份验证。
  • 版本恢复有范围。 Git 可以帮助恢复已经记录的代码,不能自动收回已发消息或撤销数据库写入。

原理依据见 Git ObjectsBranches in a Nutshell

Git 的价值也不需要建立在“其他系统都过时了”的说法上。集中式与分布式版本控制各有取舍,先理解约束,再比较设计。相关讨论见 Git 与 SVN

这个仓库怎么教

学习按三个部分展开:

  1. 建立理解。 从一个真实疑问进入快照、对象、引用和历史,先预测,再观察。
  2. 验证理解。 用可暂停的动画、临时仓库实验和预期输出,检查解释能否预测结果。
  3. 运用理解。 把 Agent 的改动组织成可审查的提交,把验证绑定到具体版本,再决定是否合入与发布。

动画帮助看见关系。真正的掌握,是换一个条件后仍然能预测结果,并说出不知道什么。

人负责什么,AI 帮什么

可以让 AI 解释对象图、生成实验、比较候选方案、执行授权操作、找审查线索。人需要理解目标与边界,评估证据,并为接受何种变化承担责任。具体审批可以由团队规则分配,不能把责任简单推给“AI 说没问题”。

例如 Agent 说“修好了,测试全绿”。你至少应该能够继续问:

  • 修复是否只解决了约定的问题?
  • 测试验证的是最终提交,还是包含未提交编辑的工作区?
  • 合入后出现问题,哪些状态可以恢复,哪些需要补偿?

这些问题连接了原理与工程管理。Git 是变更控制的基础之一,完整体系还需要测试、审查、权限、制品和发布记录。

从哪里开始

先打开交互学习页,再按完整学习路径依次尝试十个主题的文章、交互和临时仓库实验。完成材料阅读或脚本运行后,仍要通过预测、重现和迁移检查自己的理解;接着可尝试一次 Agent 变更的完整验收。需要从原理、一次变更和团队协作之间选择入口时,查看知识地图

我们的目标:让理解支撑判断,让工具承担执行。