第 3 章 · 暂存、提交与历史查看
本章目标:在小紫 AI 工作台里,完整走通一次 改文件 → 暂存 → 提交 → 查历史;理解「为什么要暂存」;会写别人能看懂的提交说明。
学时建议:3~4 小时(含 1.5 小时跟练)
前置:完成 git-collab ch02;已用 项目 → 打开项目 打开含 .git 的仓库。
3.1 场景说明:改了三处,只想交两处怎么办?
你用 SRX 改完 shop-demo,左侧文件树出现好几个 M:
README.md— 你故意改的configs/app.yaml— SRX 顺带改的,你还要再想想.env.local— 本地密钥,绝对不能提交
如果「保存 = 直接进 Git 历史」,你会把密钥和半成品一起交上去。暂存(stage) 就是让你自己挑哪些改动进入下一次提交——像超市结账前先放进篮子里的东西。
工作区(改了很多文件)
↓ 你选哪些进篮子
暂存区(篮子)
↓ 点「提交更改」
Git 历史(永久记录,可推送、可回滚)
3.2 三个区域,用界面就能对上号
| 区域 | 你在工作台看到什么 | 类比 |
|---|---|---|
| 工作区 | 磁盘上的文件;树上有 M / U | 草稿纸 |
| 暂存区 | 点「暂存更改」后准备提交的文件 | 购物篮 |
| 版本库 | 提交成功后;色标干净或变少 | 已存档的正式版 |
为什么 不跳过暂存直接提交:团队常需要「这个文件改好了先交,另一个明天再交」;暂存让你控制一次提交的范围。
3.3 跟练准备:打开项目并制造改动
- 项目 → 打开项目 → 打开项目文件夹,选
~/dev-workspace/shop-demo(或你的练习仓库根目录)。 - 打开
README.md,加一行:## 练习提交,Ctrl+S。 - 看左侧:文件名旁应出现 M(Modified)。
若没有 M:多半没打开仓库根、或文件本来就在 .gitignore 里。回到 ch02 检查。
3.4 第一步:暂存(放进篮子)
菜单路径(GitHub 协作用这个组):
仓库 → GitHub 远程仓库 → 暂存更改
(若只做本地 Git,同一项也在 仓库 菜单的更改分区里,名称类似。)
点完之后你应该看到:
- 被暂存的文件,角标往往变成 A(Added to index)或仍 M,以你版本为准
- 不确定时:点 查看暂存,列表里应出现
README.md
为什么 先暂存再提交:Git 的设计就是「两次确认」——先选文件,再写说明正式存档。
可选:底部终端对照(帮助理解,不是必须):
cd ~/dev-workspace/shop-demo
git status
你应该看到类似:
Changes to be committed:
modified: README.md
或一部分在 Changes not staged——说明还有文件没进篮子。
3.5 第二步:提交(写说明、正式存档)
仓库 → GitHub 远程仓库 → 提交更改
对话框里通常要填:
| 字段 | 填什么 | 注意 |
|---|---|---|
| 提交说明 | 一句话说清「这次干了啥」 | 例:docs: 更新 README 练习提交 |
| Git 用户名 | 你的名字 | 第一次会弹窗 |
| Git 邮箱 | 常用邮箱 | 建议和 GitHub 账号邮箱一致 |
提交成功后你应该看到:
- 提示成功(或历史里多一条)
README.md的 M 消失(工作区干净)- 提交历史 里出现刚写的那条说明
终端验证:
git status
期望:nothing to commit, working tree clean(或中文「无文件要提交,工作树干净」)。
为什么 说明要写人话:两星期后你自己也忘了改了啥;队友看历史全靠这几行字。
3.6 提交说明怎么写(团队都看得懂)
推荐:前缀 + 简短中文。
| 前缀 | 什么时候用 | 例子 |
|---|---|---|
feat: | 新功能 | feat: 商品列表按 slug 筛选 |
fix: | 修 bug | fix: 购物车数量不能为 0 |
docs: | 只改文档 | docs: 更新 README 安装步骤 |
chore: | 工具、依赖 | chore: 升级 gin 版本 |
不要写:「update」「改一下」「111」——以后没法搜。
和 SRX 的关系:SRX 审阅条通过后文件才落盘;落盘 ≠ 提交。审阅是「这版代码我认」;提交是「这版代码进 Git 历史、能推送、能回滚」。