---
title: "W03 上机导航：数据简报与投资研报的版本记录"
---

# 🧭 第 3 周上机手册：数据简报与投资研报的版本记录

[W03 材料入口](https://ai.lingnan.top/materials/2026-autumn/w03) · [常见问题](https://ai.lingnan.top/materials/2026-autumn/w03/faq)

| 练习 | 做什么 | 材料包文件夹 |
| --- | --- | --- |
| [练习一：有版本记录的数据简报](https://ai.lingnan.top/materials/2026-autumn/w03/lab-1) | 建项目、写任务说明和项目规则，做一份含图表的 HTML 简报，边做边提交；核验修订、试改再撤销、写项目入口交接；含讲解录播 | `01_数据简报/` |
| [练习二：投资研报的 Git 管理](https://ai.lingnan.top/materials/2026-autumn/w03/lab-2) | 给已有初稿的研报项目开启版本记录，数据更新和评级修改分开提交，用 `git revert` 只撤销其中一条；含讲解录播 | `02_投资研报/` |
| [进阶练习：回退与换主题](https://ai.lingnan.top/materials/2026-autumn/w03/lab-3) | 只恢复误删的一节、说出四种文件状态、换一个主题再做一遍 | `04_回退练习/`、`03_迁移主题/` |

本周两个练习。第一个是主任务：建一个项目文件夹，用你选定的材料做一份含图表的 HTML 简报，边做边用 Git 记录版本。做完之后，这个项目里会有：几个按内容命名的子文件夹、一份任务说明和项目规则、一份能在浏览器里打开的简报，以及一条能念出来的版本记录：初始化 → 任务说明 → 初版 → 修订 → 试改 → 撤销 → 交接。第二个练习是投资研报的 Git 管理：拿到一个已有初稿的项目，自己开启版本记录，分步提交，再用 `revert` 撤销其中一步，见本手册“第二个练习”。

## 开始之前

### 使用 WorkBuddy 时

本手册保留 Claude Code 路线；用 WorkBuddy 时，在新建任务页选择本练习项目作为工作空间，再发送相同的自然语言指令。不在终端启动 `claude`，不照搬 `Shift+Tab`、`/exit`、`/export`、`/resume`、`/rewind` 或逐次 Yes／No 审批。沿用当前“均衡”模式即可，不因练习切换模型或充值。

WorkBuddy 的“默认权限”不是每次写文件或运行命令都询问；全访问关闭也不等于 Claude Code 的手动逐次审批。这里改练“先报告、等确认再执行”：提交、回退前明确要求先说明命令、文件范围和风险，等你发出确认再做。这是协作约定，不是系统权限；遇到真正的系统授权仍要单独判断。

项目规则放在根目录 `CLAUDE.md`，在第二步显式要求 WorkBuddy 读取并复述；不要仅凭文件名假定已加载。新任务要重新核对工作空间并明确读规则。看文件用右侧“查看工作空间”，生成 HTML 后打开产物预览；看状态、差异和历史时，让它运行下文三条只读 Git 命令并展开过程卡片。WorkBuddy 的“查看变更”有时把新工作区文件整篇显示为绿色，不能仅据此判断修订差异，应对照实际 `git diff`。

### 配置 Git

打开终端（Windows 用 Git Bash 或 PowerShell，Mac 用“终端”），逐条运行：

```bash
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` 把这个文件夹挡在仓库外，所以它不会进版本记录；成品课件里也不要整段复制老师课件的原文，引用要点并标出来源文件即可。选 ① 的资料同样只放本机。

### 材料包与项目文件夹

- 下载[本周材料包](/course-materials/2026-autumn/w03/w03-materials-pack.zip)，解压到桌面或下载文件夹。**不要解压到项目文件夹里面**，后面按步骤把需要的文件复制进去。材料包保留一份不动，改坏了可以重新复制。
- 项目文件夹放在哪里由你自己定：桌面、文档，或第 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 的提交 |


## 要记住的四件事

1. **未提交的找不回，同一块硬盘不是备份。** 每完成一个能说清的目标就提交一次；`.git/` 和文件在一起，备份要另外做。
2. **提交前先让它报告，再放行。** `git status`、`git log`、`git diff` 它直接跑；`git commit`、`git revert`、`git restore` 先说清会做什么、动哪些文件，你确认后再执行。
3. **只记录原稿，文件夹名要能说明自己。** 白名单 `.gitignore` 放行 Markdown 和 HTML，原始资料文件夹与导出物不进仓库；`git status` 里看不到被挡的文件才算对。文件夹按内容起名，看名字就知道只读还是可改、进不进仓库。
4. **回退分三层，`reset --hard` 不用。** `restore` 丢弃没提交的改动（不可恢复）；`restore --source` 取回某文件的旧版本；`revert` 用新提交抵消旧提交，历史保留。`/rewind` 管会话，Git 管项目。
