W03 学生材料包
ZIP · 约 110 KB
解压到桌面或下载文件夹,不要解压到项目文件夹里面;保留一份不动,改坏了可以重新复制。含数据简报、投资研报、迁移主题与回退练习四个材料包。
本页目录
本周两个练习。第一个是主任务:建一个项目文件夹,用你选定的材料做一份含图表的 HTML 简报,边做边用 Git 记录版本。做完之后,这个项目里会有:几个按内容命名的子文件夹、一份任务说明和项目规则、一份能在浏览器里打开的简报,以及一条能念出来的版本记录:初始化 → 任务说明 → 初版 → 修订 → 试改 → 撤销 → 交接。第二个练习是投资研报的 Git 管理:拿到一个已有初稿的项目,自己开启版本记录,分步提交,再用 revert 撤销其中一步,见本手册“第二个练习”。
材料三选一,自己定。 ① 自选主题与材料;② 正在上的某门课,选一章,做成“如果你是老师来讲这一章”的讲解课件;③ 没有想法就用给定的实习岗位样本材料包。三种做法步骤相同,手册的示例用第 ③ 种:一份约 150 条岗位的数据表(公司类型、城市、岗位类别、月薪区间、要求技能……),加两页背景和一页口径说明,做成 6–8 页的简报,至少 3 张图,图里的每个数字都能在数据表里对上。数据、机构和背景都是教学模拟材料。选 ①② 的,把“数据表”换成你自己的材料读下去即可,各步有专门的说明。
第 2 周的做法是改一版另存一个 _v2。这次不再另存:改动直接改在同一个文件上,旧版本由 Git 保管,想看、想比、想退都从版本记录里取。
开始之前
配置 Git
打开终端(Windows 用 Git Bash 或 PowerShell,Mac 用“终端”),逐条运行:
git --version
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
git config --global init.defaultBranch main
git config --global core.quotepath false
- 第一条应显示
git version 2.xx。显示“不是内部或外部命令”的,见《常见问题》第 2 条。 - 后四条运行后没有输出就是成功。名字和邮箱写进每一条版本记录,用来标明“这条记录是谁写的”;中英文都行。
- 第四条让新建的仓库默认叫
main;第五条让git status里的中文文件名正常显示,不然会显示成"\346\225\260\346\215\256..."。本周的文件夹和文件都用中文名,这一条不能省。
运行 git config --global --list,能看到刚才设的四项即可。
先定材料
三选一,定了再往下走。三种材料在项目里放的位置不同,原始资料文件夹的名字也随材料起(起名原则见第一步)。
| 选项 | 原始资料文件夹放什么 | 口径与要求/ 放什么 | 第四步核什么 |
|---|---|---|---|
| ① 自选主题与材料 | 你自己找的资料、数据(文件夹名按内容起,例如 校园消费数据/) | 材料包 01_数据简报/口径与要求/简报要求.md;有统计口径的自己写一份口径说明 | 一张图的数字,或一处定义、结论的出处 |
| ② 某门课的一章,做讲解课件 | 老师的课件、教材章节、你的笔记(文件夹名例如 课程原始资料/) | 同上的 简报要求.md | 一处定义、公式或例题是否与教材一致 |
| ③ 实习岗位样本材料包 | 材料包 01_数据简报/岗位样本数据/ 里的数据表和两份背景(文件夹名 岗位样本数据/) | 材料包 01_数据简报/口径与要求/ 里的口径说明和简报要求 | 一张图的数字;口径说明里“面议”和“重复发布”两条 |
隐私与版权。 课程资料是老师的材料,只放在你自己电脑的原始资料文件夹里。白名单 .gitignore 把这个文件夹挡在仓库外,所以它不会进版本记录;成品课件里也不要整段复制老师课件的原文,引用要点并标出来源文件即可。选 ① 的资料同样只放本机。
材料包与项目文件夹
- 下载本周材料包,解压到桌面或下载文件夹。不要解压到项目文件夹里面,后面按步骤把需要的文件复制进去。材料包保留一份不动,改坏了可以重新复制。
- 项目文件夹放在哪里由你自己定:桌面、文档,或第 1 周建的练习文件夹都可以。一个任务一个项目文件夹,在项目文件夹里启动
claude。本手册用实习岗位简报/作示例名。 - 第 1 周的环境能用:在任意文件夹运行
claude能对话。
| 材料包目录 | 用途 | 用在哪一步 |
|---|---|---|
01_数据简报/岗位样本数据/ | 数据表 实习岗位样本_2026春.csv,两份背景资料(选 ③ 用) | 第一步 |
01_数据简报/口径与要求/ | 口径说明.md(怎么数,选 ③ 用)、简报要求.md(成品长什么样,三种都用) | 第一、二、四步 |
01_数据简报/模板/ | 任务说明、CLAUDE.md、.gitignore 白名单、检查记录、决策日志、README 的模板 | 第一、二、四、六步 |
01_数据简报/材料包说明.md | 材料包的总说明 | 随时 |
02_投资研报/ | 第二个练习:已有初稿的研报项目,自己开启版本记录、分步提交、revert | 第二个练习 |
03_迁移主题/ | 换一个主题再做一遍:社团活动与经费 | 进阶 |
04_回退练习/ | 两个现成的小仓库:只恢复误删的一节;说出四种文件状态 | 进阶 |
两种看法,一个做法
看状态、看差异、看历史有两种看法;所有改动仓库的动作(开启版本记录、提交、回退)都让 Claude Code 做、由你审批。本课不用面板做提交、暂存、放弃更改。
| 路径 | 用来做什么 | 怎么打开 |
|---|---|---|
| VS Code 源代码管理面板 | 看状态、看差异、看历史 | 用 VS Code“文件 → 打开文件夹”打开项目文件夹;左侧活动栏点“源代码管理”图标,或按 Ctrl+Shift+G(Mac 也是这个组合)。资源管理器底部的“时间线”看单个文件的历史 |
| 三条只读命令 | git status(现在改了什么)、git log --oneline(提交历史,一行一条)、git diff(改了哪些行) | 不要求手打。你对 Claude Code 说“看看改了什么”“看看历史”“看看差异”时,它在后台跑的就是这三条,会把结果念给你。手册里凡是写到这三条命令的地方,都是让它跑、你看结果,命令名留着供你对照它的报告 |
| Claude Code | 开启版本记录、提交、回退 | 在项目文件夹里直接运行 claude,默认就是手动逐次审批:git commit、git revert 这类会改东西的命令每次都会先问你;git status、git log、git diff 它直接跑 |
面板的译名以你屏幕上显示的为准:本手册写“源代码管理”“打开更改”“时间线”“源代码管理图”。面板里的“初始化仓库”“暂存更改”“提交”“放弃更改”按钮本课不用;看到它们不要点,让 Claude Code 做、你审批,练的是看它的报告再放行。
同一个项目文件夹不要同时开两个 Claude Code 会话,两个会话会互相覆盖对方的改动。
每一步后面有“✅ 自查”,写这一步做完应看到什么,包括 git log --oneline 应有几行、git status 应是什么样。自查里的命令都让 Claude Code 跑并把结果念给你,或在面板里看。多提交了一次没有关系,行数只多不少。
术语对照:中文、英文、在哪里会看到
Claude Code 的回报、git status 的输出和 VS Code 面板里会出现英文术语,对照着认一遍,以后看到不慌。
| 中文 | 英文 | 在哪里会看到 |
|---|---|---|
| 仓库 | repository,简称 repo | Claude Code 回报“已初始化仓库”;.git/ 就是仓库本身 |
| 工作区 | working directory/working tree | 你正在改的文件夹本身 |
| 暂存区 | staging area/index | 面板“暂存的更改”(Staged Changes);git status 里“Changes to be committed” |
| 提交、提交点 | commit | 历史图里的每一个点;Claude Code 回报“已提交 a1b2c3d” |
| 哈希 | hash | 提交后面那串 7 位字母数字,是提交的编号 |
| 当前位置 | HEAD | git status 第一行;历史图里标记最新提交 |
| 分支、主线 | branch、main | git status 第一行“On branch main” |
| 状态 | status | git status;面板“更改”列表 |
| 差异 | diff | git diff;面板点文件“打开更改”看到的红绿对照 |
| 历史 | log/history | git log --oneline;面板“源代码管理图”(Source Control Graph)与“时间线”(Timeline) |
| 未跟踪 | untracked | git status 里“Untracked files”;面板文件后标 U |
| 已修改 | modified | git status 里“modified:”;面板文件后标 M |
| 已暂存 | staged | 面板“暂存的更改”一组 |
| 被忽略 | ignored | .gitignore 挡住的文件;面板里不出现 |
| 丢弃更改 | restore/discard changes | 回退第一层;面板叫“放弃更改”(本课不用面板做) |
| 取回旧版本 | restore --source | 回退第二层 |
| 撤销提交 | revert | 回退第三层;历史里多一条 Revert "…" |
| 开启版本记录 | init(git init) | Claude Code 回报“已初始化空仓库” |
| 放进暂存区 | add/stage | Claude Code 请你批准 git add;面板“暂存更改”按钮(本课不用面板做) |
| 提交 | commit(git commit -m "说明") | Claude Code 请你批准 git commit |
| 远端、推送、拉取、克隆 | remote、push、pull、clone | 把仓库放到 GitHub 一类远端时才用到,本课不涉及;看到 git push 的提示不用理 |
| 工作树 | worktree | 同一仓库在另一个文件夹再放一份工作区,以后详讲 |
| 检查点 | checkpoint | Claude Code 会话自带的回退点(/rewind),不是 Git 的提交 |
第一步:建项目、给文件夹起名、开启版本记录
学生做什么
新建项目文件夹(示例名
实习岗位简报/),用 VS Code“文件 → 打开文件夹”打开它。在 VS Code 终端里(菜单“终端 → 新建终端”)启动:claude不带参数,默认就是手动逐次审批。界面底部不显示
accept edits、plan、auto一类模式提示就是手动审批;显示了就按Shift+Tab切换到不显示为止。给文件夹起名。 第 2 周用的
inputs/、outputs/是课上的例子,不是规定。这次按项目自己的内容起名,短而自明:看名字就知道这个文件夹是什么、范围有多大、操作原则是什么(只读、可改、进不进仓库)、里面大概是哪类文件,智能体看到名字就知道该读还是不该读。中文项目用中文名。三个例子:项目 文件夹 范围与操作原则 实习岗位简报(选 ③) 岗位样本数据/原始数据表与背景资料,只读,不进仓库 口径与要求/口径说明、简报要求,只读 简报成品/HTML 简报,Git 跟踪 协作记录/任务说明、检查记录、决策日志,Git 跟踪 货币银行学第 3 章课件(选 ②) 课程原始资料/老师课件、教材章节、笔记,只读,不进仓库,不外传 讲解课件/HTML 成品 协作记录/同上 月度策略研报(第二个练习) 宏观与行业数据/原始数据,只读,不进仓库 研报草稿/研报 Markdown,Git 跟踪 交付稿/导出的 PDF 等,不进仓库 选 ① 的照这个思路起:原始资料一个文件夹(名字说清是什么数据或资料),口径与要求一个,成品一个,协作记录一个。名字定下来后,后面
CLAUDE.md的“文件约定”一节要为每个文件夹写一行范围和操作原则,和文件夹名互相印证。本手册下文按选 ③ 的四个名字写,选 ①② 的换成你自己的名字。让 Claude Code 建文件夹(第一句话,名字换成你定的),它会请你批准,看清路径再选允许。
自己用访达(Mac)或文件资源管理器(Windows)复制文件:
放到 实习岗位简报/下的放什么 岗位样本数据/选 ③:材料包 01_数据简报/岗位样本数据/里的 3 个文件(数据表和两份背景)。选 ①②:你自己的资料、数据、课件、教材章节、笔记,放进你起名的原始资料文件夹口径与要求/材料包 01_数据简报/口径与要求/里的简报要求.md;选 ③ 再加口径说明.md项目根目录 01_数据简报/模板/gitignore_白名单.txt简报成品/和协作记录/先空着。让 Claude Code 把
gitignore_白名单.txt改名为.gitignore(第二句话)。打开看一眼,去掉开头那行复制说明后,内容应是这七行,最后一行写你自己的原始资料文件夹名:# 只记录原稿:Markdown 与 HTML * !*/ !*.md !*.html !.gitignore # 原始资料不进仓库:最后一行写你的原始资料文件夹名 岗位样本数据/选 ② 的最后一行写
课程原始资料/;选 ① 的写你起的名字,例如校园消费数据/。逐行读:*先把一切挡在外面;!*/放行所有文件夹(不然进不到子目录);!*.md、!*.html、!.gitignore放行三类原稿;最后一行把原始资料再挡回去。于是数据表、老师的课件、以后导出的 PDF 和 PNG 都不进仓库,仓库里只有你和 AI 写的原稿。原始资料里有.md文件(例如你的课堂笔记)也会被最后一行挡住,因为它挡的是整个文件夹。让它开启版本记录,先不提交,报告会记录哪些文件(第三句话)。核对它的清单:应有
.gitignore和口径与要求/下的.md,没有 原始资料文件夹里的任何文件。清单里出现了原始资料的文件,见《常见问题》第 7 条。在 VS Code 源代码管理面板看一眼:面板里列出的“更改”应和它的清单一致,每个文件后面标
U(新文件,未跟踪)。原始资料文件夹里的文件不出现,这才对。让它做首次提交(第四句话)。它会请你批准两次:一次
git add(把文件放进暂存区),一次git commit(写进历史)。看清命令再选第一个 Yes(只允许这一次)。带don't ask again字样的选项不要选。
可以对 Claude Code 说的话
第一句(文件夹名换成你定的):
在当前文件夹里创建四个空文件夹:岗位样本数据、口径与要求、简报成品、协作记录。只创建文件夹,不要创建或修改其他文件。
第二句:
把项目根目录里的 gitignore_白名单.txt 改名为 .gitignore,内容一个字都不要改。改完把它的内容念给我看。
第三句:
给这个项目开启版本记录(git init),先不要提交任何东西。然后告诉我两件事:哪些文件会被记录,哪些文件被 .gitignore 挡在外面了。
第四句:
把现在会被记录的文件全部提交,提交说明写“初始化:项目结构与参考材料”。执行前先把你要运行的命令告诉我。
✅ 自查:第一步
- 项目文件夹里有原始资料文件夹(选 ③ 是
岗位样本数据/,3 个文件)、口径与要求/(选 ③ 是 2 个文件,选 ①② 至少有简报要求.md)、简报成品/(空)、协作记录/(空)和.gitignore。Windows 看不到.gitignore的,在文件资源管理器“查看”菜单里勾选“隐藏的项目”。 .gitignore最后一行是你的原始资料文件夹名,末尾带斜杠。git status显示工作区干净(nothing to commit, working tree clean),源代码管理面板显示“没有更改”。git log --oneline有 1 行:一串短哈希,后面是“初始化:项目结构与参考材料”。- 让它列出被记录的文件(它会跑
git ls-files),列表里有.gitignore和口径与要求/下的.md,没有原始资料文件夹的东西。 - 第一次提交报错
Author identity unknown,见《常见问题》第 1 条。
第二步:写任务说明和项目规则
学生做什么
从
01_数据简报/模板/复制三个文件到协作记录/:任务说明_模板.md改名为任务说明.md,检查记录.md、决策日志.md名字不变。再把CLAUDE_模板.md复制到项目根目录,改名为CLAUDE.md(和协作记录/放在一起,不放上级文件夹)。打开
协作记录/任务说明.md,按六要素读一遍并改成你的版本。模板里有两个示例:实习岗位简报(选 ③ 直接改)和课程章节讲解课件(选 ② 用;选 ① 参考两者改写)。要素 这个任务里写什么 角色 选 ③:数据简报助手,数字按 口径与要求/口径说明.md算,不自己定口径。选 ②:这门课的授课老师,讲解范围限于这一章。选 ①:按你的主题定背景 给谁看、依据哪些材料(写清原始资料文件夹里有什么);选 ② 写这一章在课程里的位置 任务 做一份 6–8 页的 HTML 简报或课件,至少 3 张图(数据图、结构图或流程图) 约束 原始资料文件夹不改动;材料里没有的信息不补造(数据、定义、公式都不补);口径或材料没写清的先问;成果写在一个文件里 格式 抄 口径与要求/简报要求.md:单个 HTML 文件简报成品/简报.html,6–8 页;不联网也能打开,图用内嵌 SVG,不引用外部图表库;每张图有标题、单位或说明、来源一行;深色正文、浅色底、字号够大自检 抄 口径与要求/简报要求.md:图和正文里的数字、定义、公式能在原始资料或口径与要求里找到出处并标出来源文件;列出每个数字的计算过程(数据类);没有外部链接最后一句要求它先交计划、等你确认。
打开
CLAUDE.md,逐条读,每一条你都能说出为什么要写;不需要的删掉。先写最少的几条。“文件约定”一节按你起的文件夹名改:每个文件夹一行,写范围和操作原则(只读、可改、进不进仓库)。保存后
/exit退出,重新运行claude,让它复述任务说明(第一句话),对照你写的检查。在源代码管理面板看:
CLAUDE.md和协作记录/下三个文件标U。点开协作记录/任务说明.md,右侧“打开更改”视图里整篇是绿色,因为它是新文件。让它提交(第二句话)。纯手写的提交,说明写一行主题就够。
可以对 Claude Code 说的话
第一句:
读一遍 协作记录/任务说明.md 和 CLAUDE.md,用四行告诉我:要产出什么文件、有哪些约束、自检要查什么、项目规则有哪几条。只读,不要改任何文件。
第二句:
把这轮改动提交,提交说明写“任务说明与项目规则”。执行前先告诉我会提交哪些文件。
✅ 自查:第二步
协作记录/任务说明.md六要素齐全;“格式”和“自检”两项与口径与要求/简报要求.md一致;输出路径是简报成品/简报.html。CLAUDE.md在项目根目录,文件名不是CLAUDE.md.txt;“文件约定”里每个文件夹一行,名字和你建的一致。- 它复述的内容和你写的对得上。
git status干净;git log --oneline有 2 行,最新一行在最上面。
第三步:跑出初版,看清改动再提交
学生做什么
复制
协作记录/任务说明.md代码块里的全部文字,粘贴给 Claude Code。它应先回复计划,不是直接写文件。逐条看:- 它读到的材料和你放进去的一致吗?数据类看行数、列名;课程章节类看它列出的章节标题、小节和页数。
- 三张图打算画什么?每张图依据哪份材料的哪部分(数据表的哪几列,或教材的哪一节)?
- 它打算把成果写到
简报成品/简报.html吗?有没有打算改原始资料文件夹? - 它有没有说图怎么画(内嵌 SVG 还是引用网上的图表库)?没说就问。
- 它问了问题吗?问了就先答,答案是你的判断,记进决策日志。
计划有问题就指出来让它改;没问题再放行(第一句话)。
执行中它会请求批准。写文件看清路径是
简报成品/简报.html;路径在原始资料文件夹里的一律拒绝。它想运行命令算数(例如一段 Python),看得懂、只是读取和计算的可以允许,看不懂就拒绝让它先解释,拒绝后它会改为逐条手算。完成后自己在浏览器打开
简报成品/简报.html(在文件上右键“打开方式 → 浏览器”,或把文件拖进浏览器窗口)。翻一遍:几页、几张图、每张图有没有标题、说明和来源一行;数字、定义、公式旁边有没有标来源文件。试一次断网:关掉 Wi-Fi 再刷新页面,图还在吗?图消失了,说明它引用了网上的图表库,见《常见问题》第 18 条,让它改成内嵌后再继续。不方便断网的,让它检查文件里有没有
http开头的外部引用(第二句话)。让它报告这一轮改了什么、先不提交(第三句话)。在源代码管理面板点开
简报成品/简报.html:新文件整篇是绿色。命令行的git diff不显示还没被记录过的新文件,这是正常的;到第四步修订时,git diff才会红绿两色。提交(第四句话)。这是 AI 参与的提交,建议的写法是一行主题加两段正文:“AI 做了什么”和“我改了什么/为什么接受或拒绝”。你这一轮没有改它的东西也可以写:写你检查了什么、为什么接受。这样三个月后回看历史,能分清哪些是 AI 的、哪些是你的判断。
可以对 Claude Code 说的话
第一句(计划看过之后):
计划可以,开始执行。
第二句(检查外部引用):
检查 简报成品/简报.html 里有没有引用网上的文件:http 或 https 开头的 script、link、img。有的话逐条列出来,先不要改。
第三句(提交前先报告):
先不要提交。用 git status 和 git diff 的结果告诉我:这一轮新建或修改了哪些文件,每个文件改了什么。
第四句(建议的两段式提交说明,横线处换成你的话):
把这轮改动提交。提交说明按下面写,第一行是主题,空一行后是两段正文:
简报初版:____ 页、____ 张图
AI 做了什么:____
我改了什么/为什么接受或拒绝:____
✅ 自查:第三步
简报成品/简报.html存在,浏览器能打开,断网后图仍显示;6–8 页,至少 3 张图,每张图有标题、说明、来源。- 你没有批准过任何改动原始资料文件夹的操作。
git status干净;git log --oneline有 3 行。- 让它显示最近一次提交的完整说明(它会跑
git log -1),能看到主题一行;按建议写了两段的,两段正文也在。
第四步:对照原始材料核一处内容,写修改意见,出修订版
学生做什么
挑一处内容,回到原始材料核一遍。数据类(选 ③ 和选 ① 的数据主题)挑一张图,把它的数字和数据表核一遍,建议挑涉及月薪的那张:用 Excel 或 VS Code 打开
岗位样本数据/实习岗位样本_2026春.csv,用筛选功能按图上的分类筛出行数,和图上的数字比。课程章节类(选 ②)挑一处定义、公式或例题,翻到教材或老师课件的原文比对:措辞、符号、条件、数值是否一致,有没有它自己补的内容。核之前先读
口径与要求/里的文件。选 ③ 读口径说明.md,两处要看仔细:月薪区间里的“面议”怎么计;编号不同、其余字段相同的岗位怎么计。图上的数字和你按口径数出来的不一样,就是发现。选 ①② 读简报要求.md里关于出处的那条:每个数字、定义、公式都要能指到来源文件,指不到的就是发现。让它列出这处内容的依据(第一句话),和你自己核的比。它说的“已核对”不算数,你核的才算。
打开
协作记录/检查记录.md,把发现写进去。每条修改意见写清五件事:位置 → 问题 → 原始依据 → 修改要求 → 复查方式。没发现错误的,不要编一个;提一项明确的新要求走一轮修订,例如“每张图下方加一行说明,写明依据的材料文件和纳入、排除的范围”。发修改意见(第二句话)。这次直接改
简报成品/简报.html,不另存新文件。改完先看 diff,再提交:源代码管理面板里
简报成品/简报.html标M,点开是红绿两色,红是删掉的行,绿是加上的行,只看这两种颜色。协作记录/检查记录.md也标M。确认改动在你要求的位置,再让它提交(第三句话)。
可以对 Claude Code 说的话
第一句(数据类):
把 ____ 这张图每个数字的计算过程列出来:按什么筛选、数了多少行、月薪区间为“面议”的岗位怎么处理的、重复发布的岗位怎么处理的。只回答,不要改文件。
第一句(课程章节类):
第 ____ 页的 ____(定义/公式/例题)依据的是哪份文件的哪一节?把原文和课件里的写法并排列出来,指出有没有你自己补的内容。只回答,不要改文件。
第二句(横线处换成你的检查记录):
请修改 简报成品/简报.html,直接改这个文件,不要另存:
1. 位置:____ 这张图(或第 ____ 页的 ____)。问题:____。原始依据:____ 文件的 ____(列名、条款号或章节)。修改要求:____。复查方式:____。
改完先不要提交,告诉我改了哪些行。
第三句:
把这轮改动提交。提交说明第一行写主题,空一行后分两段:“AI 做了什么”写你改了哪里、从什么改成什么;“我改了什么/为什么接受或拒绝”这一段留给我,内容是:____
✅ 自查:第四步
协作记录/检查记录.md里至少一条修改意见,五件事齐全。- 浏览器刷新后,那处内容和你按原始材料核出来的一致;图下能看到依据的材料文件和纳入、排除的范围。
git diff或面板里,改动集中在你指出的位置,没有顺手改别的地方。git status干净;git log --oneline有 4 行;最新一条说明是一行主题,按建议写的话还有两段正文。
第五步:试一次改坏,再退回来
这一步故意做一次不满意的改动,练两种回退:撤销一次已提交的改动(git revert),丢弃一处没提交的改动(git restore)。
学生做什么
让它做一处大改动:换一套配色,或把三张图合成一张(第一句话)。改完在浏览器刷新看效果,然后提交(第二句话)。这一条提交的主题写“试改:____”。
比较新旧两版。旧版在时间线里:在 VS Code 打开
简报成品/简报.html,展开资源管理器底部的“时间线”,点上一条提交,能看到这次改动的对照。决定要不要退回。手册假定你决定退回;觉得新版更好也可以留着,在决策日志写明理由,然后另找一处小改动来练回退。回退前先让它报告(第三句话):它会怎么做、执行什么命令、动哪些文件。合格的回答是
git revert加上一条提交的哈希,并说明会新增一条提交、历史保留。它提出git reset --hard的,拒绝,告诉它“不要 reset,用 revert”。确认后放行(第四句话)。它会请你批准
git revert;有的版本会再问一次提交说明。刷新浏览器:简报回到试改之前的样子。
git log --oneline多了一行“Revert ...”或你指定的主题,试改那一条仍然在,这就是“历史保留”。再练
restore:自己在 VS Code 里打开协作记录/任务说明.md,在末尾随便加一行字,保存。源代码管理面板里它标M,点开能看到那一行是绿色。现在丢弃这处改动,同样让 Claude Code 做:先让它报告(第五句话),合格的回答是git restore 协作记录/任务说明.md,并提醒你这一步不可恢复。确认后放行。面板上的“放弃更改”本课不用。git restore丢掉的改动找不回来,所以先报告、再执行。
可以对 Claude Code 说的话
第一句(二选一):
把 简报成品/简报.html 换一套配色,页面底色和图表颜色都换,直接改这个文件。改完先不要提交,告诉我改了什么。
把 简报成品/简报.html 里的三张图合并成一张放在同一页,直接改这个文件。改完先不要提交,告诉我改了什么。
第二句:
把这轮改动提交,主题写“试改:换配色”,正文一段写你改了什么。
第三句(回退前先报告):
我想撤销上一次提交“试改:换配色”,回到它之前的样子,但历史记录要保留。先告诉我你会怎么做、会执行什么命令、会动哪些文件,先不要执行。
第四句:
可以,按你说的执行。提交说明写“撤销:换配色的改动”,正文写一句为什么退回:____
第五句(丢弃未提交的改动):
协作记录/任务说明.md 里有一处没提交的改动,我不要了,想让它回到上次提交的样子。先告诉我你会执行什么命令、这个操作能不能恢复,先不要执行。
✅ 自查:第五步
git log --oneline有 6 行:从上到下是撤销、试改、修订、初版、任务说明、初始化。试改那一条没有消失。- 浏览器里的简报和第四步结束时一样。
协作记录/任务说明.md末尾那行字没有了;git status干净。- 你能说出两次回退的区别:
revert针对已提交的改动,新增一条提交,历史保留;restore针对没提交的改动,改动直接消失,不可恢复。 - 它两次都先报告、经你确认才执行;
git reset --hard没有出现过。
第六步:写决策日志和项目入口,最终提交
学生做什么
打开
协作记录/决策日志.md,至少写三条:接受初版时你检查了什么;修订时你按什么依据改了哪处内容;试改为什么退回。每条都有“依据”。把
01_数据简报/模板/README_模板.md复制到项目根目录,改名为README.md。里面三节要填:- 这个项目做过什么:让它把
git log --oneline念成一段话(第一句话),你改成自己的话写进去。一条提交线念下来就是项目日志。 - 版本记录在哪里:在项目文件夹里的隐藏目录
.git/,和文件在同一块硬盘上,所以它不是备份;复制项目文件夹时要连.git/一起。 - 怎样恢复:看历史用
git log --oneline;取回某个文件的旧版本用git restore --source=<哈希> -- <文件>;撤销一次提交用git revert <哈希>。这三句抄进去,换电脑的你也能看懂。
- 这个项目做过什么:让它把
最终提交(第二句话)。
让它列出被记录的全部文件(第三句话),核对没有原始资料文件夹,没有 PDF、PNG。
同伴互查: 请旁边的同学只看你项目里的 README.md,说出这个项目改过几版、哪一版被退回、怎样取回退回前的版本。一分钟内说出来,交接就写清楚了。
可以对 Claude Code 说的话
第一句:
读一下 git log --oneline,把每一条提交连成一段话,告诉我这个项目从头到尾做过什么。只回答,不要改文件。
第二句:
把这轮改动提交,提交说明写“交接:决策日志与项目入口”。执行前先告诉我会提交哪些文件。
第三句:
列出版本记录里跟踪的全部文件,再显示 git log --oneline。只读。
✅ 自查:第六步
README.md三节都有内容;协作记录/决策日志.md至少三条,每条有依据。git status干净;git log --oneline有 7 行。- 被记录的文件只有
.md、.html和.gitignore;原始资料文件夹不在其中。 - 同学只看
README.md就能说出退回的是哪一版、怎样取回。
第二个练习:投资研报的 Git 管理
这个练习反过来:不是从空文件夹开始,而是拿到一个已经有初稿的月度策略研报项目(宏观与行业数据为真实公开数据,配置判断为练习设定),自己给它开启版本记录,把初稿存档。然后按项目里 CLAUDE.md 的规则做两件事,分开提交:更新宏观数据;下调新能源板块评级。用 git log --oneline 看历史,读一次 diff。接着收到一份“补贴政策延续”的通告,评级下调的依据不成立了,用 git revert 只撤销那一条提交,宏观数据的更新不受影响,历史里两条都在。
与数据简报练习的对照:那边的 .gitignore 是白名单(先挡一切,再放行 .md、.html),这边是黑名单(默认记录一切,逐条列出不记录的原始数据文件夹 宏观与行业数据/、交付稿文件夹 交付稿/ 等)。两种写法都让原始数据留在仓库外,只记录你和 AI 一起改出来的原稿;哪种合适,看你更容易数清“该记录的”还是“不该记录的”。项目文件夹的名字也照第一步的原则起:宏观与行业数据/ 只读不进仓库,研报草稿/ 由 Git 跟踪,交付稿/ 不进仓库。
步骤、可以说的话和每步自查都在 材料包/02_投资研报/练习说明.md,照它做,另建一个项目文件夹,不和数据简报混在一起。做完 git log --oneline 应有 5 行,其中一条是撤销。
回看自己的版本记录与协作过程
做完六步,项目里有两条记录:Git 里的版本记录,和 Claude Code 里的对话。两条都能回看,下面两小节是怎么看、怎么导出的教程。
在 VS Code 里看 Git 历史图
源代码管理面板里有一个“源代码管理图”(Source Control Graph,VS Code 内置,译名以屏幕为准):打开面板后,它在“更改”列表下方,折叠着的话点标题展开;也可以在面板右上角的“…”菜单里找“查看 → 源代码管理图”一类的入口。
能看到什么:每条提交一行,从上到下由新到旧,一行里有提交说明的主题、作者和时间,左侧一条竖线把提交串起来(本周没有分支,所以是一条直线)。点一条提交,右侧会列出这次提交改了哪些文件;再点某个文件,打开的是那次改动的前后对照,红是删掉的、绿是加上的。第五步的撤销提交在这里能看到它改的文件和试改那条正好相反。
看单个文件的历史用“时间线”:在资源管理器里选中文件(例如 简报成品/简报.html),展开资源管理器底部的“时间线”,列出的是这个文件被哪几次提交改过;点一条,看那次的前后对照。“源代码管理图”按提交看全项目,“时间线”按文件看,两个都是看,不改东西。
导出与 Claude Code 的交互记录
Claude Code 会话里输入 /export,会打开一个菜单,两个选项:复制到剪贴板,或保存为纯文本文件;导出的是这次会话的全部消息和工具输出,以可读文本呈现。要跳过菜单直接写进指定文件,在命令后面带文件名:
/export 协作记录/对话记录_20260922.txt
建议就这样存进 协作记录/,文件名带日期;一次会话做了几件事的,在文件名里加上,例如 对话记录_20260922_初版与修订.txt。它是 .txt,白名单 .gitignore 不放行,所以不会进仓库;想让它进仓库就把后缀写成 .md。
之前的会话(例如第二步 /exit 之前那一段)用 /resume 找回:运行 claude 后输入 /resume,从列表里选那次会话,恢复后 /export 同样可用。同一个项目文件夹里做过几次会话,就找回几次、各导出一份。
一点注意:对话记录里会有你粘贴过的材料内容,选 ② 的同学导出文件里可能含老师课件的原文,这份文件和课程资料一样只放本机,不外传。
进阶
| 练习 | 材料 | 要求 |
|---|---|---|
| 只恢复误删的一节 | 材料包/04_回退练习/练习说明.md,解压 回退练习.zip 里的 restore-lab/ | 工作区里两个文件都有未提交的改动:一个被误删了一节,一个是新草稿。用 git restore --source=<哈希> -- <文件> 只恢复那一节,不碰另一份草稿 |
| 说出四种状态 | 同上,status-lab/ | 四个文件分别处于已修改未暂存、已暂存、新建未跟踪、被忽略。对照面板标记和 git status 说出各在哪个位置 |
| 换一个主题再做一遍 | 材料包/03_迁移主题/ | 社团活动与经费的数据表,12 个社团 × 12 个月。另建一个项目文件夹(示例名 社团经费简报/,原始资料文件夹 社团经费数据/),从第一步做起;口径说明里有一处缺报月份的处理规则,第四步在这里核 |
回退练习的两个仓库自带 .git/,解压后不要新建仓库,直接在里面启动 Claude Code 或打开面板看。这两个仓库是预先做好的,里面的文件夹名不按本手册的原则起,不用改。
会话回退与项目版本的区别
Claude Code 自带一种回退:输入 /rewind,或在输入框为空时按两次 Esc,会打开一个菜单,可以选“只恢复代码”“只恢复对话”或“两者一起”,回到这次会话里某一句话之前的状态。它每次你发消息前自动记一个检查点,保留最近 100 个。
它和 Git 的分工:
/rewind | Git | |
|---|---|---|
| 管什么 | 这次会话里 Claude 用编辑工具改过的文件 | 项目里所有被记录的文件 |
| 不管什么 | 它用命令删掉、移动的文件;你自己在 VS Code 里改的;上一次会话改的 | .gitignore 挡在外面的文件;没提交过的改动 |
| 保留多久 | 会话结束后约 30 天 | 一直在,直到你删掉 .git/ |
| 用在哪 | 刚让它改了一轮,马上后悔 | 第五步那样的正式回退,以及交接 |
官方文档的原话是“不替代版本控制”。这里练的每一次提交,都是为了在会话之外留下能回去的地方。
做完后检查:项目里应有的文件
数据简报练习(以选 ③ 为例,选 ①② 的文件夹名换成你自己起的):
实习岗位简报/ 项目文件夹,在这里启动 claude
├── .git/ 版本记录(隐藏目录),复制项目时要带上
├── .gitignore 白名单,七行,最后一行是原始资料文件夹名
├── README.md 项目入口:做过什么、版本记录在哪、怎样恢复
├── CLAUDE.md 项目规则,文件约定里每个文件夹一行
├── 岗位样本数据/ 数据表与两份背景,未改动,不进仓库
├── 口径与要求/ 口径说明、简报要求
├── 简报成品/ 简报.html(同一个文件,历史由 Git 保管)
└── 协作记录/ 任务说明.md、检查记录.md、决策日志.md
git log --oneline至少 7 行,能念成一段话;其中一条是撤销。- 被记录的文件只有
.md、.html、.gitignore,没有原始资料文件夹,没有 PDF、PNG。 git status干净。- 简报里的数字、定义、公式旁边标了来源文件;选 ② 的没有整段复制老师课件的原文。
第二个练习(投资研报)在另一个项目文件夹里:git log --oneline 5 行(做了收尾是 6 行),其中一条是撤销;git ls-files 里没有 宏观与行业数据/ 和 交付稿/;研报草稿/ 里的宏观数据是 3 月版、新能源一行是“维持超配”且理由提到补贴延续。
要记住的四件事
- 未提交的找不回,同一块硬盘不是备份。 每完成一个能说清的目标就提交一次;
.git/和文件在一起,备份要另外做。 - 提交前先让它报告,再放行。
git status、git log、git diff它直接跑;git commit、git revert、git restore先说清会做什么、动哪些文件,你确认后再执行。 - 只记录原稿,文件夹名要能说明自己。 白名单
.gitignore放行 Markdown 和 HTML,原始资料文件夹与导出物不进仓库;git status里看不到被挡的文件才算对。文件夹按内容起名,看名字就知道只读还是可改、进不进仓库。 - 回退分三层,
reset --hard不用。restore丢弃没提交的改动(不可恢复);restore --source取回某文件的旧版本;revert用新提交抵消旧提交,历史保留。/rewind管会话,Git 管项目。