155 lines
3.5 KiB
Markdown
155 lines
3.5 KiB
Markdown
# Git 协作规范实战演练 (Git Workshop)
|
||
|
||
欢迎来到 Git 实战演练项目!🎉
|
||
|
||
本项目旨在通过实际操作,帮助大家熟悉部门的 [Git 版本控制与协作规范]。请按照以下步骤,在本项目中完成你的代码提交任务。
|
||
|
||
## 🎯 演练目标
|
||
|
||
1. 掌握 **Feature 分支** 的命名与创建。
|
||
2. 练习 **Java/代码命名规范**。
|
||
3. 掌握 **Commit Message** 的标准格式。
|
||
4. **重点**:养成 Push 前 `git pull --rebase` 的肌肉记忆。
|
||
5. 熟悉 **Pull Request (PR)** 流程。
|
||
|
||
---
|
||
|
||
## 🚀 任务流程
|
||
|
||
请按顺序执行以下步骤:
|
||
|
||
### 1. 准备工作
|
||
|
||
首先,克隆仓库并切换到开发主干 `develop`。
|
||
|
||
```bash
|
||
git clone <仓库地址>
|
||
cd git-workshop
|
||
git checkout develop
|
||
git pull origin develop
|
||
```
|
||
|
||
### 2. 创建你的功能分支
|
||
|
||
根据规范,分支命名格式为:feat/<issue-id>-<description>。 本次演练假设任务 ID 为 101,请用你的名字拼音作为描述。
|
||
|
||
示例:如果你的名字是夏小芮(Xia xiaorui)
|
||
|
||
```Bash
|
||
# 格式: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 风格 (左大括号不换行)
|
||
|
||
代码示例:
|
||
|
||
```Java
|
||
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>`
|
||
|
||
```Bash
|
||
git add .
|
||
git commit -m "feat(training): add zhangsan user detail implementation"
|
||
```
|
||
|
||
⚠️ 注意:Commit Message 必须全英文,Subject 使用祈使句,结尾不要加句号。
|
||
|
||
### 5. 同步代码 (关键步骤!)
|
||
|
||
在你开发的过程中,develop 分支可能已经有了别人的提交。为了保持提交历史整洁(线性历史),在 Push 之前,必须 进行 Rebase。
|
||
|
||
```Bash
|
||
# 1. 先切换回 develop 拉取最新代码 (是一个好习惯,或者直接 fetch)
|
||
git fetch origin develop
|
||
|
||
# 2. 确保你在你的功能分支上
|
||
git checkout feat/training-zhangsan
|
||
|
||
# 3. 执行变基 (Rebase)
|
||
git rebase origin/develop
|
||
|
||
```
|
||
|
||
如果出现冲突 (Conflict):
|
||
|
||
手动修改冲突文件。
|
||
|
||
```Bash
|
||
git add <冲突文件>
|
||
|
||
git rebase --continue
|
||
```
|
||
|
||
绝对禁止 在此处使用 git merge,这会产生无意义的 Merge Commit 节点。
|
||
|
||
### 6. 推送与提交 PR
|
||
|
||
代码同步并测试无误后,推送到远程仓库。
|
||
|
||
```Bash
|
||
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! 💻
|