DEEP 187 · 第十六辑 · 小白基础课 · LEARN NOTES

收进学习手册 · 2026-09-11 · duck.whatled.com

解读 187 · Git 入门:commit 是证据

解读对象:概念课 · 以 docs/microduck-30day/README.md(记录原则)与 docs/microduck-30day/experiments/experiment-template.md 为教材
需要的前置:零基础可读;环境怎么搭见解读 186

很多人把 Git 当"代码备份",本篇换一个说法:commit 是实验的快照,是能回头的证据。这只鸭子的 30 天实验包把它写成了制度,咱们读制度学概念。

commit 是什么:给整个项目拍一张带编号的照片

commit 把"此刻全部文件的样子"固化下来,配一个唯一编号(如 29e887ec…)和一句说明。类比实验员给样品拍照封存:之后代码怎么改、甚至改坏了,照片里的状态永远调得出来。照片是在你机器本地拍的,git push 才把它寄去远端仓库——本地拍照、远端寄送,是两步。

记录原则:每次实验都记下 commit

docs/microduck-30day/README.md 末尾有一节"记录原则",原文是这套方法的宪法:

每次实验都记录:代码 commit、训练命令、环境数量、迭代数量、日志目录、checkpoint、
显存/时间、关键曲线、失败原因和下一步。没有实际证据的内容标为“待验证”。

为什么 commit 排第一?训练结果只在"那一份代码"上成立。三天后你改了奖励函数再跑,曲线就对不上号了;有了 commit 编号,任何时候都能 git checkout 回当时那份代码重跑、对质。实验记录模板(experiment-template.md)据此设了"代码状态"一节:

## 代码状态

- commit:
- 是否有未提交修改:
- 配置文件:

注意第二行:未提交的修改也要记——照片拍了但口袋里还揣着没入镜的东西,证据就有窟窿。

发表结果前,把版本钉死

进阶文档 §1.2 演示了"钉版本"的命令:

cd microduck_rl && git checkout 29e887ecfbf5d37144759e5a9f8a176dfb83d547

checkout <编号> 就是"把项目恢复到这张照片的状态"。文档原话:平时探索可以跟最新分支,但发表/对比结果时必须记录 commit。上游代码一变,你的对比实验就作废——钉住版本,数字才有资格写进 experiment-log.csv 那样的总表。

你带走的收获

延伸

什么鸭 WHATDUCK · 复刻学习笔记 ← 全部手册 · 首页