
字节笔记本
2026年10月6日 · 约 15 分钟读完
Agentic Coding 12:Git 是你的后悔药
本文是「Agentic Coding 实战课」系列的第十二篇,主题是版本控制。让 AI 编程助手放手干活的前提,是你随时能把项目恢复到稳定状态;这一篇就来讲,怎么用最少的 Git 知识给项目装上"后悔药",从此敢让 Agent 大刀阔斧地改代码。
为什么说 Git 是 Agentic Coding 的命脉
一句话总结:没有 Git,你只能祈祷 Agent 别搞砸;有了 Git,你随时能撤销一切。
把 Git 想成一个超级游戏存档系统,最好理解:
| 游戏 | Git |
|---|---|
| 存档点 | commit(提交) |
| 读档 | checkout(检出) |
| 平行世界(试错副本) | branch(分支) |
| 把副本成果合回主线 | merge(合并) |
| 看历史记录 | log |
| 后悔药 | reset |
核心能力一句话:你可以在任何时候,回到任何存档点。这正是敢让 Agent 放手干活的底气来源。
先装图形化工具,别急着背命令
很多人怕 Git,是因为命令行难记。对新手,建议先用图形工具建立直觉,主流选择有:
| 工具 | 特点 | 价格 |
|---|---|---|
| VS Code 内置 Git | 写代码就有,零额外学习 | 免费 |
| GitHub Desktop | 官方出品,界面最友好 | 免费 |
| GitKraken | 界面美观,分支图直观 | 公开仓库免费 |
| Tower | Mac 上最精致 | 付费 |
推荐路径:先装 GitHub Desktop(到 desktop.github.com 下载,登录 GitHub 账号即可用),看懂"存档、读档"的流程,再学命令行。命令行更快,而且 Agent 也能帮你跑。
最小可用工作流:五个动作就够
不要被 Git 的几百个命令吓到,Agentic Coding 只需要五个动作:初始化、看状态、存档、看历史、读档。

动作 1:初始化(一个项目只做一次)
cd my-project # 进入项目目录
git init # 初始化 Git成功标志是出现一个隐藏的 .git 文件夹。第一次提交前,还要建一个 .gitignore 文件,把不该进版本库的东西挡在外面(密钥、依赖目录、系统垃圾文件等):
__pycache__/
*.pyc
.env
.DS_Store动作 2:看状态(最常用)
git status输出大致长这样:
On branch main
Changes not staged for commit:
modified: main.py ← 改了但没存档
new file: utils.py ← 新加的
Untracked files:
data.csv ← 还没纳入 Git这就像查看"当前进度"和"上次存档"的差异。
动作 3:存档(每完成一个小任务做一次)
两步走:
# 第 1 步:把改动放进"待存档"
git add . # . 表示全部
# 第 2 步:正式存档,写一句话说明
git commit -m "完成用户登录功能"commit message(提交说明)非常重要,未来的你会感谢现在认真写说明的你:回退时一眼就知道每个存档是干嘛的。
好的 commit message:完成销售看板的数据导入模块。坏的 commit message:update、asdfasdf、fix bug、改了一些东西。
动作 4:看历史(想回退时)
git log --oneline输出:
a3b4c5d (HEAD -> main) 完成图表模块
8f7e6d5 完成数据清洗
2c3b4a5 完成数据导入
1111111 初始化项目每行前面那串字符(如 a3b4c5d)就是这个存档的"传送门坐标"。
动作 5:读档(回到某个存档)
# 看(只看,不改)
git checkout 2c3b4a5
# 真的回到那个版本(丢弃之后的改动)
git reset --hard 2c3b4a5注意:reset --hard 是真删。用之前确认你不会后悔,没有 commit 过的改动会永久丢失。
实战:第一次完整的 Git 流程
用一个具体例子走一遍。
第一步,建项目:
mkdir my-git-demo
cd my-git-demo
git init第二步,写第一个文件,直接让 Agent 帮你:
> 在当前目录创建一个 calc.py 文件,实现一个 add(a, b) 函数,返回 a+b。
第三步,第一次存档:
git status # 看到 calc.py 是新文件
git add calc.py
git commit -m "添加加法函数"第四步,再加一个功能,然后照旧存档:
> 在 calc.py 里再加一个 multiply(a, b) 函数。
git add calc.py
git commit -m "添加乘法函数"第五步,体验读档:
git log --oneline
# b9c8d7e 添加乘法函数
# a1b2c3d 添加加法函数
git checkout a1b2c3d # 回到只有加法的版本
cat calc.py # 乘法没了
git checkout main # 回到最新版本
cat calc.py # 乘法又回来了走到这里,你已经掌握了 Git 的核心能力:随时存档,随时读档。
Agentic Coding 专属的五个 Git 习惯
以下五个习惯,是与 Agent 配合时推荐的 Git 节奏。
习惯 1:每完成一个小任务就 commit 一次。 把任务拆小,一次一个可验证的小改动,节奏是:
开始小任务 → Agent 实现 → 验证通过 → commit → 清空上下文 → 下一个
好处:每个 commit 是一个"安全岛";出错能精准回退到上一个能跑的版本;历史记录就是你的开发日记。
习惯 2:commit message 写"做了什么",不写"改了什么"。 推荐写法:完成销售看板的数据导入功能、修复:佣金计算未排除退款订单。不推荐写法:修改 main.py 第 42 行(看了等于没看)、fix bug。
习惯 3:危险操作前先 commit。 让 Agent 做大改动前,先存档当前状态:
git add .
git commit -m "重构前的稳定状态"然后让 Agent 大胆改。改砸了?git reset --hard 一秒回到稳定状态。
习惯 4:让 Agent 帮你写 commit message。 写不出好的说明,直接让 Agent 代劳:
> 看看 git diff,帮我写一个简洁的 commit message,
描述这次改动做了什么。给我 3 个候选,我选一个。习惯 5:用分支做"实验"。 想试一个新想法但怕搞坏主线,用分支:
git checkout -b experiment/v2 # 创建并切换到新分支
# 在这里大胆改,不影响 main
# 改得满意:
git checkout main # 回主线
git merge experiment/v2 # 把实验成果合并进来
# 改得不好:
git checkout main # 回主线
git branch -D experiment/v2 # 删除实验分支分支就是平行宇宙:在副本里随便试,主线安全。
一次完整的"救火"场景
设想这样的危机时刻:项目做到一半,Agent 改了一通,全崩了。救火分五步走。

第一步,先看历史,找"安全岛":
git log --oneline
# a3b4c5d (HEAD) 重构认证模块 ← 这之后全崩了
# 8f7e6d5 完成订单模块 ← 还能跑
# 2c3b4a5 完成用户模块第二步,先备份"现在的烂状态"(万一有用):
git stash # 把当前改动暂存
# 或
git checkout -b broken-backup # 把烂状态存到新分支第三步,回到"安全岛":
git reset --hard 8f7e6d5 # 回到"完成订单模块"第四步,重新规划,搞清楚刚才哪里改坏了:
git show a3b4c5d # 看那次 commit 的内容
git diff 8f7e6d5 a3b4c5d # 看两个版本的差异第五步,用更小的步子重做:不要一次性大重构,拆成三个小任务,一个一个 commit,出问题立刻能回退。
整套救火流程走下来不超过 30 分钟;如果没有 Git,这事可能要重做一整天。
关于 GitHub(远程仓库)
到这里 Git 还只在本地。需要多台电脑同步、团队协作或云端备份时,就要用 GitHub 这样的远程仓库。
把本地项目推上去,三步:
第一步,在 github.com 新建仓库(不要勾选自动生成 README)。
第二步,本地关联远程并首次推送:
git remote add origin https://github.com/你的用户名/仓库名.git
git branch -M main
git push -u origin main第三步,以后推送与拉取:
git push # 上传到云端
git pull # 从云端拉取最新安全提醒:推送前确认 .gitignore 配好了,一旦推到公开仓库,密钥和敏感数据就等于公开了。推送前可以检查有没有敏感文件被追踪:
git ls-files | grep -E "\.env|\.key|secret"如果有,先移出追踪再推送;万一密钥已经进了提交历史,即使删掉文件历史里也还在,需要用 BFG 或 git filter-repo 清理历史,并立刻吊销密钥。
Git 命令速查
- 一次性:
git init初始化。 - 日常高频:
git status看状态;git add .加入待存档;git commit -m "说明"存档;git log --oneline看历史。 - 回退救火:
git checkout <id>临时看老版本;git reset --hard <id>真的回到老版本;git checkout -b <分支名>开新分支试错。 - 远程(可选):
git push推到云端;git pull拉取最新。
动手练习
练习 1(必做):给你手头任意一个练手项目初始化 Git,每完成一个小任务 commit 一次,至少攒出 3 个 commit。
练习 2(必做):体验读档。先 commit 一次,故意改坏代码,再用 git reset --hard 回退,感受这种"安全感"。
练习 3(推荐):注册 GitHub,把项目推上去(私有仓库免费),得到一份云端备份。
练习 4(进阶):开一个分支做一个危险改动(比如换一种存储方式),改完合并回主线。
练习 5(思考):这个做法哪里有问题?"我把 API key 直接写在代码里,commit 了,push 到 GitHub 公开仓库。"参考答案:密钥进公开仓库等于钱包上街。即使后来删了,Git 历史里还在。必须立刻吊销 key,用 BFG 清理历史,之后改用 .env 加 .gitignore 管理敏感信息。
要点回顾
- Git 就是项目的游戏存档系统。
- 最小工作流:init、status、add、commit、log、checkout/reset。
- 每完成一个小任务就 commit 一次,这是 Agentic Coding 的节奏。
- 危险操作前先 commit,给 Agent 改造的底气。
- 用分支做实验副本,保护主线。
reset --hard之前三思,没 commit 的改动会消失。- 推 GitHub 前必查
.gitignore,密钥绝不进仓库。
到这里,Agentic Coding 最核心的五项技能就凑齐了:规格化,把想法翻译成可执行的需求;任务分解,把大象切成块;验证,知道 Agent 做得对不对;调试,走偏了能拉回来;版本控制,拥有后悔药。这五项组合起来,你就是一个合格的指令工程师。系列接下来的实战篇,会用这些技能从 0 到 1 做出几个真实可交付的项目,选一个最贴近你工作的领域开始即可。
参考资料:
- Git 官方文档:https://git-scm.com/doc
- GitHub Desktop 下载:https://desktop.github.com



