第 2 课
Git 工作流——给代码装上"时间机"
人工智能程序设计与实践 · 2026 年秋季学期 · 自学周① 9/25 中秋—10/8 收心
手机扫码 · 打开本课幻灯片
扫码或访问 aip-2026f.dev-learn-hub.me/a2 → 输入上方口令 → 在自己设备上同步看幻灯片
本课为自学周,幻灯片全程开放至 10/8 24:00
← 左右滑动翻页 →
本课你将完成什么
1版本管理认知 — 理解 Git 三区模型与"快照"心智模型
2每日提交习惯 — 5 个任务日 D1-D5,每天一次规范提交
3分支与回滚 — 创建/合并分支,体验回滚三板斧
4阶段总结 — .gitignore 规范 + 一周自学总结文档
你手里的资源
实践指南二《Git 工作流》
本课学习主线:概念地图、每日任务书、命令速查表、红线。本页幻灯片只讲做什么,怎么做看指南。
本课幻灯片
扫码进入(口令在班级群公布),自学周期间全程开放
评价系统
每日任务刷新与自动反馈:9:00 发布当日任务,24:00 前完成提交。教师每天上午答疑一次
llm2-isc 校内平台
遇到不懂的概念直接问 AI——附上你的提问与 AI 回答到学习笔记,这本身是 AI 使用记录的好素材
本课知识体系
①版本管理动机 — 没有 Git 的世界 vs 有 Git 的世界
▼
②三区模型与提交三连 — 工作区 → 暂存区 → 本地仓库 → 远程
▼
③分支与回滚 — 平行宇宙 + 后悔药三板斧
主线先建立心智模型(三区+快照),再练每日动作(提交三连),最后掌握安全网(分支+回滚)——三者就位即可放心写代码
① 没有版本管理的世界
你已经历过的混乱
text
报告.doc
报告-改.doc
报告-最终版.doc
报告-最终版2-真的最终.doc
报告-打死不改版.doc
论文写作中,你一定被这种命名折磨过。
Git 解决了什么
- 每次"保存"都拍一张快照(commit)
- 随时回到任何一张快照
- 多人同时改不同部分,自动合并
- 完整历史可追溯——你的工作过程就是证据
为什么本课先学 Git你的每次作业、期末项目的过程证据,全部依赖 git 历史。它同时是你简历上的第一块技术基石
② Git 的三区模型
text
工作区(你正在改的文件)
│ git add(选入快照)
▼
暂存区(这张快照要拍哪些内容)
│ git commit(拍下快照)
▼
本地仓库(快照历史)
│ git push(同步到云端)
▼
GitHub/Gitee(远程仓库——你的作品集)
心智模型
给项目拍"快照"——需要时回到任何一张快照
关键区分
- Git = 版本控制工具(装本机)
- GitHub/Gitee = 托管平台(云端仓库)
② 分支:平行宇宙
什么是分支
在副本上试验,成功了合并回来,失败了直接丢弃——主线毫发无伤。
text
main ─────●───●───●───●
\ /
dev ●───●───●
试验
为什么要分支
- 想加新功能但怕改坏主线
- 想试验一个想法,失败了直接丢
- 多人同时开发不同功能
本课立场分支是安全网——初学者最大的恐惧是"改坏了回不去",分支让这个恐惧消失
本周节奏:5 个任务日
D19/26 周六 · 三步提交 — 建笔记,走通提交三连
D29/27 周日 · 提交信息规范 — 两次 feat: 提交,好提交信息三特征
D39/28 周一 · 分支体验 — branch/checkout/merge 全流程
D49/29 周二 · 回滚三板斧 — checkout/revert/reset 三种后悔药
D510/8 周四 · .gitignore 与阶段总结 — 国庆后收心日
节奏约定每个任务日上午 9:00 评价系统刷新当日任务,晚上 24:00 前完成提交。教师每天上午在评价系统/班级群答疑一次
D1 · 三步提交
任务
- 在自己仓库新建
notes/git-notes.md,写下"三区模型"用自己的话理解(≥3 行)
- 执行完整提交三连:
git add → git commit → git push
- 提交信息:
docs: 添加git三区模型学习笔记
检查点
评价系统检测到你仓库当日有一次含 docs: 前缀的提交且文件路径正确。
翻车警告commit 忘了写 `-m "信息"` 会打开 vim 编辑器出不来——按 Esc 输入 :q! 回车逃出,重新带 -m 提交
D2 · 提交信息规范
任务
- 新建
practice/hello.py,让 TRAE CODE 生成一个打印你名字拼音的程序
- 分两次提交:
- 第一次:空函数版本
feat: 新增打招呼程序骨架
- 第二次:补全并运行验证
feat: 完成打招呼程序并验证输出
- 在 git-notes.md 追加:好提交信息的三个特征
检查点当日两次提交、信息均以 feat: 开头、程序运行输出你的名字
D3 · 分支体验
任务
git branch dev 创建开发分支,git checkout dev 切换过去
- 在 dev 分支给 hello.py 加一个新功能(比如打印当前日期)
- 提交后切回 main(
git checkout main),确认看不到新功能
git merge dev 合并,确认功能出现
- git-notes.md 追加"分支的价值"一段
命令
bash
git branch dev
git checkout dev
# ...改代码、提交...
git checkout main
git merge dev
故意实验(强烈推荐)合并前故意在 main 和 dev 改同一行,触发一次合并冲突——看到 <<<<<<< 标记后,让 TRAE CODE 教你解决它。把过程截图记入笔记。经历过一次冲突,你对 Git 的理解会超过大多数初学者
D4 · 回滚三板斧
①git checkout -- 文件名 — 丢弃工作区未暂存的修改(后悔药)
②git revert <commit> — 生成"反向提交"撤销指定提交(安全,历史保留)
③git reset --hard <commit> — 暴力回到某版本(危险,先理解再按)
红线
reset --hard 会真删东西。练习时只在 practice 目录做,永远先 git log 看清楚目标版本号
D5 · .gitignore 与阶段总结
任务
- 给仓库加
.gitignore:忽略
__pycache__/
*.pyc
.DS_Store
- 新建
notes/week01-summary.md:一周自学总结
- 全部提交推送
检查点
- 仓库存在 .gitignore 且内容合理
- 总结文档 ≥10 行
想想为什么为什么要忽略这些文件?——独立研究任务①的答案自己验证
自主实践任务
每日任务D1-D5 每日提交,评价系统自动判定:提交存在性 / 信息规范 / 内容达标
自主实践①合并冲突实验记录完整 ②回滚三板斧笔记齐全
独立研究①git log --graph --oneline 呈现什么图形 ②git stash 干什么用 ③git diff HEAD~1 vs git diff 区别
另50 道选择题当周完成,成绩单独记录(具体安排在评价系统说明)
红线
红线 1不用 git push -f(强推会覆盖远程历史——除非你 100% 确定且课程要求)
红线 2.gitignore 不忽略自己的作业文档
红线 3每日任务当日完成,连续 3 日未动将收到掉队预警(也请及时在群里说明情况,教师会调整)
S3 思政落点严谨求实——以规范的提交历史记录自己的成长轨迹,过程透明可追溯
命令速查表
| 场景 |
命令 |
| 状态三问 |
git status |
| 提交三连 |
git add . → git commit -m "..." → git push |
| 看历史 |
git log --oneline --graph |
| 看差异 |
git diff / git diff --staged |
| 场景 |
命令 |
| 建分支 |
git branch dev |
| 切换 |
git checkout dev(或 git switch) |
| 合并 |
git checkout main → git merge dev |
| 后悔药 |
git checkout -- 文件 / git revert <id> / git reset --hard <id> |
| vim 逃生 |
Esc → :q! → 回车 |
求助阶梯
1实践指南对应部分 — 本课学习主线,概念与命令全在里面
2llm2-isc 概念答疑 — 不懂的概念直接问 AI,附问答到笔记
3TRAE CODE 内置文档 — 让 AI 讲解命令含义
4班级群 / 评价系统 — 教师每天上午答疑一次
按此顺序前三步能解决绝大多数问题。卡住超过 30 分钟就发班级群,不要硬扛
资源与下载
本课幻灯片
aip-2026f.dev-learn-hub.me/a2 · 口令在班级群公布
自学周期间全程开放,复习请看实践指南
现在,开始你的自学周
① D1 · 三步提交 — 建笔记,走通 add → commit → push
② D2-D4 · 规范与分支 — 提交信息规范 + 分支 + 回滚
③ D5 · 收心总结 — .gitignore + 一周总结
9/26 上午 9:00评价系统发布 D1 任务。实践指南 → llm2-isc → TRAE CODE → 班级群。10/8 24:00 前完成全部 5 个任务日