第 2 章 完整工作流
从 main 拉分支 → 改 → 提交 → 推送 → 建 PR → review → 合入 → 清理。不直接改 main。
clone → pull → 新建分支 → 改文件 → commit → push → 建 PR → review → merge → 清理
本章任务:新增成员卡片 members/<姓名拼音>.md,走完一遍闭环。
2.1 clone:复制远程仓库到本地
git clone <仓库地址>
cd lab-git-practice
git branch -a
2.2 pull:开工前同步主线
git checkout main
git pull origin main
若本地有未提交改动,先 git status 确认,必要时先提交或 git stash。
统一 pull 策略:用 rebase。 全局设置一次(已在 0.2 完成):
``
powershell git config --global pull.rebase true``设置后
git pull自动使用 rebase,保持历史线性。若遇冲突按第 9 章处理后git rebase --continue。
2.3 新建分支
git checkout -b feature/add-<name>
分支名只用小写英文、数字、短横线。<name> 替换为姓名拼音。
2.4 改文件:新增成员卡片
Copy-Item members\_template.md members\<name>.md
git status # 确认只改了本次任务的文件
编辑 members/<name>.md,按模板填写五个字段(与脚本校验一致):角色(报告人 / 开发者 / 维护者)、方向、入组时间(YYYY-MM)、本周进展、联系方式(邮箱,与 git config user.email 一致)。
2.5 自测
python scripts/check-members.py
按提示补齐缺失字段。
2.6 commit
git add members\<name>.md
git commit -m "feat(members): 添加<姓名>成员卡片"
提交信息格式 <类型>(<范围>): <改动内容>,详见第 4 章。
2.7 push
git push -u origin feature/add-<name>
禁止 git push --force。推送成功后 Gitea 会提示创建 PR。
2.8 创建 PR
Gitea 页面:Pull Requests → New Pull Request,源分支 feature/add-<name>,目标 main。标题与 commit 一致。正文写明:
- 改了什么
- 怎么验证
- 风险评估
对应 Issue 时正文写 Closes #12。
下面三张截图依次演示在 Gitea 网页端创建合并请求的全过程:



2.9 按 review 修改
在原分支继续改,不新建分支或 PR:
git checkout feature/add-<name>
# 改文件
git add members\<name>.md
git commit -m "fix(members): 补全<姓名>成员卡片字段"
git push
新 commit 自动追加到原 PR。
2.10 merge 与清理
PR 通过后由维护者点 Merge。合入后:
git checkout main
git pull origin main
git branch -d feature/add-<name>
远程分支由 Gitea 合并时删除。
2.11 参考样例(速查)
在自己的 Fork 里新增成员卡片 members/<姓名拼音>.md,走完完整闭环。步骤与 2.1–2.10 一一对应:
- clone(2.1)→ 2. pull main(2.2)→ 3. 新建
feature/add-<name>分支(2.3) - 复制模板填五个字段(2.4)→ 5. 跑
python scripts/check-members.py自测(2.5) - commit(2.6)→ 7. push
-u(2.7)→ 8. Gitea 开 PR 到 main(2.8) - 按 review 在原分支补改后 push(2.9)→ 10. 合并后清理本地分支(2.10)
自检:
python scripts/check-quest.py 2