主题
第 8 章 Git 与 GitHub:时间机器与云存档
两个古老的噩梦:改崩了,回不去了;两个人同时改,互相覆盖了。Git 就是为此发明的——一台给代码用的时间机器。
打游戏你就懂了:**commit(提交)**就是存档点,每个存档附一句话说明这次改了什么;**branch(分支)**就是开一个平行存档去试危险打法,主线不受影响;试成了,**merge(合并)**回主线;试崩了,整条分支扔掉,无事发生。想回到任何一个存档点,随时可以。
GitHub 则是"云存档 + 联机大厅":把你的 Git 仓库(repository,简称 repo)放到云上。Git 是工具,GitHub 是网站,关系就像"邮件"和"Gmail"。push 是把本地存档传上云,pull 是把云上的新存档拉下来,clone 是把整个仓库原样抄一份到新电脑。多人协作时你还会见到 PR(Pull Request):"我改好了一版,请你看过再合并"——AI 帮你改代码时走的也常是这个流程。
现在你明白 Claude Code 为什么老在 commit 了:AI 也需要存档点。它每完成一小步就存一次档,一旦搞砸,回滚就行。经历过"改坏了却回不去"的人(比如我们),会真心爱上这个设计。
平时你只需要三招傍身:git status(我现在改了哪些还没存档)、git log --oneline(存档历史一览)、git diff(这次到底改了什么)。让 AI 帮你回滚时,你能看懂它在做什么,而不是闭着眼睛祈祷。
关键领悟
commit 越勤,胆子可以越大。没有版本控制的实验是赌博;有版本控制的实验,才是科学。
试一试
在我们任意一个项目里跑 git log --oneline,读读最近二十条存档说明——那就是这个项目的编年史。