第 8 章 · push、pull 与协作工作流
本章目标:固化 拉取 → 分支 → 开发 → 提交 → 推送 一日节奏;理解 push rejected 与先 pull 的关系;多人并行时用 feature 分支 避免互相踩脚;与 SRX、quick-start ch07 对齐习惯。
学时建议:3~3.5 小时(含 2 小时跟练)
前置:git-collab ch07(能 push);ch04 会建 feature 分支。
8.1 场景说明:两人共用一个仓库,怎么不打架
shop-demo 商城组 仓库在 GitHub:
- 你在做 商品筛选(
feature/product-filter) - 同事在做 订单导出(
feature/order-export) - main 只放「能跑的稳定版」
若两人都直接在 main 上改、乱 push,要么互相覆盖,要么冲突爆炸。本章把 一人一天 和 两人并行 的标准动作练到肌肉记忆。
8.2 学完你能
| 能力 | 验收 |
|---|---|
| 一日节奏 | 按清单走完 pull→branch→commit→push |
| push 前检查 | status、分支名、是否 pull 过 |
| 被拒处理 | pull → 解冲突 → 再 push |
| 并行协作 | 各用 feature,少改同文件 |
| 规范意识 | main 不直接推(团队约定) |
8.3 一人一天标准节奏(打印贴屏)
□ 项目 → 打开项目(仓库根,ch02 色标正常)
□ 切 main → 从 GitHub 拉取(ch06)
□ 创建/切换 feature/今日任务(ch04)
□ SRX:@ 相关文件 → 审阅条全确认 → 落盘
□ 暂存 → 提交(小步、多次,说明清楚)
□ 自测(能跑的关键路径)
□ 推送到 GitHub(当前 feature 分支)
□ (ch09)GitHub 开 PR,等 Review
下班前 至少 push 一次——避免代码只在你硬盘上。
8.4 push 之前:30 秒检查
终端(推荐):
cd ~/dev-workspace/shop-demo
git branch # 星号应在 feature/*,不是误在 main
git status # 应 clean,或只剩故意不提交的
git log --oneline -3
| 检查 | 为什么 |
|---|---|
| 在 feature 上 | 避免把 WIP 推上 main |
| working tree clean | 未提交的不会上传 |
| 说明可读 | 队友看 log 能懂 |
| 今日 pull 过 main | 减少 push rejected |
菜单:仓库设置 → 推送到 GitHub
8.5 跟练 A:完整模拟「工作日」(必做)
步骤 1 — morning pull
git checkout main
git pull origin main # 或菜单「从 GitHub 拉取」
步骤 2 — 开分支
仓库 → GitHub 远程仓库 → 分支 → 创建分支
名:feature/ch08-daily-rhythm
或终端:git checkout -b feature/ch08-daily-rhythm
步骤 3 — 小改动
新建 docs/ch08-note.md:
# ch08 跟练
今日完成:pull → branch → commit → push
暂存 → 提交:docs: ch08 工作流笔记
步骤 4 — 推送
推送到 GitHub(确认推的是 feature/ch08-daily-rhythm)
步骤 5 — 网页验收
GitHub → Branches → 看到 feature/ch08-daily-rhythm 和你的 commit。