Reviewed-on: #3 |
||
|---|---|---|
| .gitea | ||
| participants | ||
| .gitignore | ||
| README.md | ||
README.md
Git 协作规范实战演练 (Git Workshop)
欢迎来到 Git 实战演练项目!🎉
本项目旨在通过实际操作,帮助大家熟悉部门的 [Git 版本控制与协作规范]。请按照以下步骤,在本项目中完成你的代码提交任务。
🎯 演练目标
- 掌握 Feature 分支 的命名与创建。
- 练习 Java/代码命名规范。
- 掌握 Commit Message 的标准格式。
- 重点:养成 Push 前
git pull --rebase的肌肉记忆。 - 熟悉 Pull Request (PR) 流程。
🚀 任务流程
请按顺序执行以下步骤:
1. 准备工作
首先,克隆仓库并切换到开发主干 develop。
git clone <仓库地址>
cd git-workshop
git checkout develop
git pull origin develop
2. 创建你的功能分支
根据规范,分支命名格式为:feat/-。 本次演练假设任务 ID 为 101,请用你的名字拼音作为描述。
示例:如果你的名字是夏小芮(Xia xiaorui)
# 格式:feat/training-<your_name>
git checkout -b feat/training-xxr
3. 创建个人工作区与代码
为了避免演练冲突,请在 participants 目录下创建一个以你名字命名的文件夹。
创建目录:participants/xxr/
创建文件:在该目录下创建一个 Java 类文件,例如 UserDetail.java。
📝 编码规范要求 (请严格遵守):
类名:大驼峰 (e.g., UserDetail)
方法名:小驼峰 (e.g., getUser)
缩进:4 个空格 (严禁使用 Tab)
括号:K&B 风格 (左大括号不换行)
代码示例:
package participants.xxr;
public class UserDetail {
private String userName;
public String getUser(int id) {
if (id <= 0) {
return "Unknown";
}
return this.userName;
}
}
4. 提交代码 (Commit)
将文件添加到暂存区并提交。请遵循 Conventional Commits 规范。
格式:<type>(<scope>): <subject>
git add .
git commit -m "feat(training): add zhangsan user detail implementation"
⚠️ 注意:Commit Message 必须全英文,Subject 使用祈使句,结尾不要加句号。
5. 同步代码 (关键步骤!)
在你开发的过程中,develop 分支可能已经有了别人的提交。为了保持提交历史整洁(线性历史),在 Push 之前,必须 进行 Rebase。
# 1. 先切换回 develop 拉取最新代码 (是一个好习惯,或者直接 fetch)
git fetch origin develop
# 2. 确保你在你的功能分支上
git checkout feat/training-zhangsan
# 3. 执行变基 (Rebase)
git rebase origin/develop
如果出现冲突 (Conflict):
手动修改冲突文件。
git add <冲突文件>
git rebase --continue
绝对禁止 在此处使用 git merge,这会产生无意义的 Merge Commit 节点。
6. 推送与提交 PR
代码同步并测试无误后,推送到远程仓库。
git push origin feat/training-xxr
最后一步:
打开 Git 仓库网页 (GitLab/GitHub)。
创建一个 Pull Request (Merge Request)。
源分支:feat/training-xxr
目标分支:develop
在描述中引用关联 Issue(本次演练可忽略)。
邀请 Tech Lead 进行 Code Review。
✅ 自查清单 (Checklist)
在提交 PR 前,请自我检查:
-
分支名是否小写?(e.g., feat/...)
-
代码缩进是否为 4 空格?左大括号是否没换行?
-
Commit Message 是否符合格式?(e.g., feat(scope): ...)
-
是否执行了 Rebase 操作? (历史记录是否是一条直线?)
Happy Coding! 💻