parent
bf047cfd35
commit
7999545a2b
148
README.md
148
README.md
|
|
@ -1,3 +1,147 @@
|
|||
# git-training-workshop
|
||||
# Git 协作规范实战演练 (Git Workshop)
|
||||
|
||||
博诺思内部GIT实战演练项目
|
||||
欢迎来到 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/zhangsan/
|
||||
|
||||
创建文件:在该目录下创建一个 Java 类文件,例如 UserDetail.java。
|
||||
|
||||
📝 编码规范要求 (请严格遵守):
|
||||
|
||||
类名:大驼峰 (e.g., UserDetail)
|
||||
|
||||
方法名:小驼峰 (e.g., getUser)
|
||||
|
||||
缩进:4 个空格 (严禁使用 Tab)
|
||||
|
||||
括号:K&B 风格 (左大括号不换行)
|
||||
|
||||
代码示例:
|
||||
|
||||
```Java
|
||||
package participants.zhangsan;
|
||||
|
||||
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):
|
||||
|
||||
手动修改冲突文件。
|
||||
|
||||
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! 💻
|
||||
|
|
|
|||
Loading…
Reference in New Issue