📄 一句话概括
Git 在这里最大的价值不是存版本,是【错得起】:看改了什么、存档、干别的、不满意一键回退——有了它你才敢放手让它改。
📝 本节和前面几节的关系
上一节定好了规矩,这一节讲那件让规矩敢于放宽的东西:版本管理。
一、它天生会用 Git,而且比大多数人熟
Git 的操作是有明确规则、可复述、可验证的——这正是它最擅长的那一类任务。 你不用教它命令怎么写,只要说清目标:把这次改动单独存一档、看看它改了什么、把这个文件退回去。
二、你真正该关心的只有一件事:回退
看改了什么(diff)、存档(commit)、干别的、不满意一键回退(checkout)——四步里最要紧的是最后一步。 有了这层保护,你才敢让它放手改;没有它,你只能让它出主意。 本节的演示在一个临时仓库里真跑了一遍:改坏之后一键退回,内容原样回来。
三、怎么把 Git 用成你的安全带
开工前先存档:动大文件之前先存一档,回退的落点才清楚。 一次改动一档档:别攒三天再一起存,否则回退粒度太粗。 提交信息写人话:写【改订单页日期显示】而不是【update】,将来你自己看得懂。 推送之前必看 diff:这是红灯动作,看一眼再放行,成本极低。
四、一条实话
Git 能保护你改错,但保护不了你想错——需求本身错了,代码写得再干净也没用。 所以 Git 是执行层的保险,第 2.6 节的四件套才是需求层的保险。两层都要有。
五、动手 Demo:Git 在这里到底帮了什么
下面在一个临时仓库里真跑一遍:init、add、commit、diff、checkout。
def git(*args):
return subprocess.check_output(
["git", "-c", "user.email=demo@local", "-c", "user.name=demo"]
+ list(args), cwd=TMP, stderr=subprocess.STDOUT)
git("init", "-q"); git("add", "demo.txt")
git("commit", "-q", "-m", u"第一版:初始内容")
# 改坏之后
git("checkout", "--", "demo.txt")
实跑输出:
--------------------------------------------------------------------
Git 在这里到底帮了什么
--------------------------------------------------------------------
下面在一个临时仓库里真跑一遍,看这几步各自在保护什么:
改了文件之后,先看它改了什么:
demo.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
回退一步,文件内容回到:第一版
这四步里,**回退那一步是它最该被信任的地方**:
看改了什么(diff)-> 存档(commit)-> 干别的 -> 不满意一键回退(checkout)
没有这层保护,你不会敢让它放手改;有了它,【试错】才敢放开。
输出里三段值得看:diff 说清了改了什么;回退之后内容原样变成【第一版】。 演示用完临时仓库已自动删除——演示产物不留在你的目录里。
30 秒实验
- 给你常用的项目建一个本地版本库,先存一档,然后让它改一处,看 diff。
- 练一次回退:故意改坏,然后退回去。会退,才敢放手。
常见误区
- 把 Git 当存档盘,只存不理。【一次改动一档】才能让你退得回去。
- 以为有 Git 就不用复查 diff。它挡得住误操作,挡不住你把错的改动推出去。
自测三问(点开对答案)
1. Git 在这里最大的价值是什么? —— 错得起——看改了什么、存档、干别的、不满意一键回退。 2. 四步里最要紧的是哪一步? —— 回退那一步;它是敢不敢放手改的前提。 3. Git 能保护什么、保护不了什么? —— 保护你改错,保护不了你想错——需求错了代码再干净也没用。- ☐ 下一节(4.5 Computer Use:AI长了眼睛和手)
相关笔记
- 🐳 DeepSeek Harness技术架构原理 · 索引 — 智能体的工具调用与验证循环
- 🧡 Claude Code橙皮书 · 索引