经济金融 AI 智能体设计与开源 · W03 01 — 34
课程总览 中山大学岭南学院 · 李学恒 / 张一帆
+ +
☰ ↑ ↓
中山大学岭南学院 · 2026 秋
Git 与可回退的工作流 经济金融 AI 智能体设计与开源 · Week 3
AI 让修改更快,Git 让修改可控
李学恒 中山大学岭南学院 · 微观经济与数字经济教研室
W03 09 · 22
I 从上周接过来
重要文件改坏了,怎样找回来
今天学会操作的是这一张
Git 项目版本 保存已提交的阶段版本;比较、恢复。要事先提交。
云盘历史版本 按时间自动备份,从历史版本或回收站恢复。同步也会传播误删。
Time Machine Mac 配合外置硬盘整机备份;查看最近成功时间。备份盘要设置并可用。
第 1 周说过:学 Git 就是在给自己的工作装可回滚。今天把这句话说准:不是一键回退,是回到已提交的版本 ;云盘按时间自动备份,Git 按你的意图主动存档,每次存档都有你写的备注。
没提交的找不回;仓库和文件在同一块硬盘,不算备份。
沿用第 2 周备份页 · 教材第 6 章
I 一个熟悉的痛苦
文件名撑不住
核对表_v1.md
核对表_v2.md
简报_v3_改图_最终.html
简报_最终_真的final.html 改第三版时删掉了第二版的一张图;老师说第二版那张更好,翻遍文件夹找不回。
文件名记不住“改了什么、为什么改”,Git 把这两样写进每一次存档。
李学恒《Git:AI 时代的存档基建》 · 图内“一键回滚”“分支不覆盖”两条以后讲
I 三种失控 → 四个角色
AI 一轮改 4–8 个文件,会怎样失控
项目目录与规则文件管现场秩序,Git 管改动秩序 :记录、审阅、回退、交接。
教材第 6 章
I 六个概念,本周用三个
一次存档存了什么
一次提交 = 整个项目此刻的快照(snapshot)+ 时间 + 作者 + 你写的说明;没变的文件不重复存。本周用三句话:把这个项目用 Git 管理起来/把当前进度存档/回到上一个稳定版本 。分支、合并以后讲,推送本学期不用。
李学恒《Git:AI 时代的存档基建》 · 教材第 6 章
I 两回事
Git ≠ GitHub
Git 管版本,GitHub 放仓库。 以后会在提示里碰到四个词:远端(remote)是放在 GitHub 上的那份仓库,推送(push)把本地推上去,拉取(pull)把更新拿回来,克隆(clone)把别人的仓库整个复制到自己电脑。本周不碰远端:不推送、不注册账号。
I 五步
本周的最小工作流
五步:让 Claude Code 把项目用 Git 管理起来 → 告诉你有哪些改动 → 挑出本次要提交的范围 → 存档到本地历史 → 展示历史,必要时回退 。第一句话:“帮我把当前项目用 Git 管理起来,保存初始版本。”
李学恒《Git:AI 时代的存档基建》 · 教材第 6 章
II 教材 6.2
三个位置:工作区、暂存区、提交点
中文 英文 在哪里看到 工作区 working directory/tree 你正在改的文件夹 暂存区 staging area/index 面板“暂存的更改” 提交点 commit 历史图、它回报的“存档编号” 仓库 repository(repo) .git/ 隐藏目录哈希 hash 提交后面那串 7 位编号 HEAD HEAD 你现在站在哪个提交点 主线 main 面板左下角分支名
提交只读取暂存区的内容 ,与工作区里尚未选定的改动无关——“选范围”因此成立。
教材第 6 章 · 图上的“版本库”指提交点所在的历史
II 动作 1
看状态:面板用来看,动作让它做
源代码管理 3
暂存的更改0
更改3
简报成品/ 简报.htmlM
协作记录/ 检查记录.mdM
协作记录/ 决策日志.mdU
M = 已修改(modified) U = 未跟踪(untracked) 被 .gitignore 挡住的文件(ignored)不出现
帮我看一下当前 Git 的状态:哪些文件被修改了、哪些是新文件、哪些已经准备好提交。
Claude Code 已修改:简报成品/简报.html、协作记录/检查记录.md 新文件:协作记录/决策日志.md 暂存区为空,还没有准备好提交的内容。
面板只看四样:状态、差异、历史图、时间线。 不用面板点“提交”“放弃更改”。
看——面板;做——Claude Code,你审批。 同一个项目文件夹不要同时开两个会话。
II 动作 2
看差异:读一段 diff
简报成品/简报.html
@@ -212,4 +212,4 @@
<h2>城市 × 月薪区间</h2>
- <p class="n">样本数:150 个岗位</p>
+ <p class="n">样本数:138 个岗位(去掉 12 条面议)</p>
<svg viewBox="0 0 640 360">
差异(diff)就是两版之间的逐行对比:红是删,绿是加 ,@@ 后是位置 面板里点文件“打开更改”,看到的就是这个视图 Markdown、HTML、CSV 能逐行比;docx/xlsx/PNG 只显示“二进制文件已更改” 这是本周原稿用 Markdown、图表内嵌进 HTML、研报数据用 CSV 的原因。
II 自然语言 → 命令
你说一句话,它在后台做了什么
规律:只读的它直接跑;改仓库的,手动模式下每次问你 ,它不会悄悄提交。三条只读命令不要求手打,认得出即可。
II 对照表
六句话,对应六个动作
你说 动作 它在后台跑 问不问你 把这个项目用 Git 管理起来,先别提交 开启版本记录(init) git init,并写 .gitignore问(要写文件) 现在有哪些改动,每个文件改了什么 看状态、看差异 git status、git diff不问 只提交这两个文件,说明用中文 放进暂存区(add)再提交(commit) git add 两个文件 + git commit -m问 显示最近 5 次记录 看历史(log) git log --oneline -5不问 撤销最近一次提交,保留记录 撤销提交(revert) git revert HEAD问 丢掉这个文件没提交的改动 丢弃更改(restore) git restore 文件问
最小习惯:每次正式提交前,至少让它报告一次——“先告诉我改了哪些文件、每个文件改了什么,别提交。”
II 动作 3
最小提交路径:看改动 → 选范围 → 存档 → 看历史 → 必要时回退
改动范围大时,不让 AI 把所有文件一次性提交:“只提交 简报成品/简报.html 和 协作记录/检查记录.md,其他先不要提交。提交前把选定内容列出来让我确认。” 一次提交只对应一个明确目标,后续才容易审,也容易回退。
教材第 6 章
II 动作 3
提交说明:好备注 vs 坏备注
坏备注 好备注 修改代码 fix: 修正控制变量的滞后阶数(t-1 改为 t-2)更新论文 feat: 添加稳健性检验(替换被解释变量度量)试一下 exp: 实验 Probit 模型(当前 Logit 结果不显著)改了研报 docs: 下调新能源评级至标配,依据补贴退坡预期改了简报 fix: 城市薪资图去掉 12 条面议岗位,按口径说明只算标注区间的岗位
纠正它写的备注:“备注改一下,重点是去掉面议 ,配色调整只是附带。”
前缀四种:feat 新增/fix 修正/docs 文稿/exp 试验。说明写的是“改了什么、为什么改”。
教材第 6 章 · 李学恒《Git:AI 时代的存档基建》
II 建议写法
一条提交线念下来,就是项目日志
一种建议写法:一行主题;AI 参与的那次提交,正文两段“AI 做了什么 ”“我改了什么/为什么接受或拒绝 ”;纯手改的写一行主题。决策日志记判断过程,提交说明记这一版变了什么、谁改的。
II 小步提交
什么时候提交
每完成一个能说清的目标就存一次:简报初版、修订版、换配色各一次;研报更新数据又改判断分两次;任务说明和 CLAUDE.md 都是“项目规则”,一次就够。改到一半要走:“把当前进度存档,备注标明这是未完成的工作”,它会写成 WIP: 开头。存档的成本是一句话,不存档的成本可能是半天工作。
教材第 6 章
II .gitignore
哪些进仓库,哪些不进:白名单与黑名单
练习一 · 白名单:只记录原稿
# 只记录原稿:Markdown 与 HTML
* # 先排除一切
!*/ # 放行目录
!*.md
!*.html
!.gitignore # 放行三类原稿
# 原始资料不进仓库:最后一行写你的原始资料文件夹名
岗位样本数据/
练习二 · 黑名单:除了这些都记
# 原始数据不进仓库
宏观与行业数据/
# 导出物不进仓库
交付稿/
# 系统与个人设置文件
.DS_Store
.claude/settings.local.json
要“只记录原稿”用白名单;要“除了数据都记”用黑名单。被挡住的文件叫“忽略”(ignored),面板和回报里都不出现。
原始材料与导出物不进仓库,含个人信息的原件、别人的课件和密钥更不进;一旦进入历史,后续清理很麻烦。验收:让它列出会记录哪些文件,被挡的不出现才算对。
II 动作 4
回退三层
三层都让它做,先要它报告会怎么做、不执行,确认后再做 。① 丢弃某个文件没提交的改动,不可恢复;② 从某次提交取回某个文件的旧版本;③ 撤销一次提交但保留记录,新提交抵消旧提交。git reset --hard 抹掉之后一切,它若提议就拒绝。
II /rewind
会话回退 ≠ 项目版本
Claude Code 每轮对话前自动存一个检查点(checkpoint):/rewind,或输入框为空时按两次 Esc,可选只恢复代码、只恢复对话或两者一起。它只记 Claude 用编辑工具改过的文件;命令删的、你手改的、别的会话改的都不在。官方原话:不替代版本控制 。会话里后悔用它,项目要留痕用 Git。
II 教材 6.4 · 一页印象
Worktree:多个智能体并行改同一个项目
同一目录不要同时开两个会话,两个会话改同一份文件会互相覆盖。Worktree(工作树)是同一个仓库在另一个文件夹里再检出的一份工作区:一个仓库、两个文件夹、两个智能体各改各的 ,做完再合回主线(main);分出去的线叫分支(branch)。入口 claude --worktree 任务名。今天有个印象即可,分支与 Worktree 以后详讲。
III 教材 6.5
五个最常见误区
危险的不是回退,而是没有回退点。误提交了就说:“刚才那次提交里,×× 文件不该放进去,请恢复到提交前的状态,我来重新选定。”
教材第 6 章
III 教材 6.6
案例:投资研报的 Git 管理
A 股月度策略报告,初稿已存档,要更新宏观数据、修正一处行业判断。数据更新和判断修改分开提交 :混在一起,撤销判断的同时会丢掉数据更新。这个项目就是练习二的起点。
教材第 6 章 · 教材 6.6 案例一
III 教材 6.6
案例里的规则与两段对话
CLAUDE.md · Git 工作流
- 每次修改前先确认工作区干净
- 数据更新和内容修改分开提交,不要混在一起
- 提交信息用中文,说明改了什么、为什么改
- 修改行业判断时,在提交信息里注明修改依据
写作要求:数据必须来自 宏观与行业数据/,不可自行编造 两步分开提交 先确认工作区干净。然后做两步修改,分开提交:第一步把研报宏观部分的 CPI、PPI 和 PMI 更新为 8 月 CSV 的最新值,备注“更新 8 月宏观数据:CPI、PPI 与 PMI”;第二步把新能源板块从“维持超配”改为“下调至标配”,备注“下调新能源板块评级至标配,依据补贴退坡预期”。完成后显示最近 5 次存档记录让我确认。
精准撤销 刚才对新能源板块评级的修改判断有误,补贴政策实际延续。请撤销最近一次提交,但保留这次撤销在历史里,备注写“撤销新能源评级下调:补贴政策延续”。
项目 月度策略研报/:宏观与行业数据/ 只读、黑名单排除;研报草稿/ 一个文件靠 Git 记版本;交付稿/ 不进仓库。
教材第 6 章 · 练习二材料包 02_投资研报
III 演示
老师演示:做一份 HTML 课件,三段走完提交与回退
副本 货币银行学第3章课件/ 已有两次提交。① 生成初版:先看计划再放行,“先告诉我改了哪些文件,别提交”,读 diff 再提交;② 改坏一处:把三张图合成一张,提交;③ 回退:“撤销最近一次提交,保留记录,先告诉我会怎么做,别执行”,确认后历史图五个节点。改坏了不怕,怕的是没有提交点。
课程案例 · 材料为教学模拟
IV 任务卡
练习一:一份有版本记录的简报
起点 材料三选一,自己定:① 自选主题与材料;② 正在上的某门课选一章,做成“如果你是老师来讲这一章”的讲解课件;③ 没想法就用给定的实习岗位样本材料包 01_数据简报/。
文件夹起名 按内容用中文起短而自明的名字,看名字就知道装什么、只读还是可改、进不进仓库;CLAUDE.md 的文件约定每个文件夹一行。示例 岗位样本数据/、口径与要求/、简报成品/、协作记录/;课程课件用 课程原始资料/、讲解课件/。
六步 建项目、开版本记录(白名单 .gitignore) 任务说明与规则 初版:先看计划,先报告再提交 对照材料核一处,写修改意见,修订 试改一次,revert 撤销;再练一次 restore 决策日志与 README,交接提交 留下什么 6–8 页、至少 3 张内嵌图、不联网可开的 HTML;数字、定义、公式能在材料里找到出处。git log --oneline 至少 7 行,其中一条是撤销。课程资料只放本机的原始资料文件夹,成品不整段复制原文。
做完后:看一眼历史图,导出这次的对话记录。
学生实操手册 · 材料包 01_数据简报
IV 任务卡
练习二:投资研报的 Git 管理
起点 材料包 02_投资研报/项目起点/,复制后改名为 月度策略研报/:已有初稿 研报草稿/月度策略_202608.md、宏观与行业数据/ 的 CSV、CLAUDE.md 与黑名单 .gitignore。
与练习一的对照 白名单 vs 黑名单;多轮迭代各一提交 vs 两步分开提交、精准撤销一步。
五步 开启版本记录,先让它列出会记录哪些文件,确认 宏观与行业数据/ 不在;提交“初稿存档” 更新 8 月宏观数据,单独提交 下调新能源评级,单独提交 看历史图,念出三条各改了什么 收到“补贴政策延续”通告:先让它报告会怎么撤,再 revert 第三条;看历史,宏观数据那条还在 留下什么 git log --oneline 5 行,其中一条是撤销;判断回到“维持超配”。
做完后:看一眼历史图,导出这次的对话记录。
材料包 02_投资研报/练习说明 · 教材第 6 章
IV 排错
看到这些提示不用慌
Author identity unknown 配两行:git config --global user.name、user.email 中文文件名显示成 \346\240\270… git config --global core.quotepath falseLF will be replaced by CRLF 提醒,不是错误;继续做 git 不是内部或外部命令 装好 Git 后重开终端 回报或面板里出现原始资料文件夹的文件 .gitignore 写错或放错位置,先修再提交简报打开后图不显示 引用了外部图表库,让它改成内嵌 报错原文抄进《常见问题》页内搜索,或整段贴给 Claude Code 问“这是什么意思,先别改”。
IV 自查
复盘:把提交历史念成一句话
初始化 任务说明 简报初版 修正口径 换配色(试) 撤销换配色 交接
能独立完成一次本地提交 从开启版本记录到首次提交,它做、你审批。
说得清这一版改了什么、为什么提交 提交说明和决策日志各记各的。
知道失败退到哪里 三层回退,先报告再执行。
两句重申:未提交的找不回;同一块硬盘不是备份。 投影你的历史图,把它念出来。
教材第 6 章 · 自查三句
教材第 6 章 小结
AI 让修改更快,Git 让修改可控 今天留下四个动作:看状态、看差异、提交、回退改参数这类试验以后放在分支上做,失败整条丢弃——讲分支时再说
IV 阶段作业 1
阶段作业 1:数据采集—分析—报告工作流
四个方向(选一)
某行业的招聘信息采集、岗位画像与求职准备 AI + 某行业的产业研究 校园社团、课程、活动或周边生活信息整理 经济金融数据的采集、可视化和解释 六项材料
可复现的数据采集流程;原始数据、清洗结果和字段说明;数据与引文来源清单;分析报告;一个可浏览的网页、仪表板或结构化文档;错误检查与修正记录。
第 6 周(10 月 13 日)交
今天的简报就是“分析报告 + 可浏览网页”的小样;作业里把给定数据换成自己采集的数据,“可复现的采集流程”“错误检查与修正记录”用提交历史来证。
课程实施方案 · 第六节