常用规则
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
# Git 工作流规范
|
||||
|
||||
## 规则
|
||||
|
||||
1. **提交粒度**:
|
||||
- 每次提交只做一件事,保持提交的原子性。
|
||||
- 避免将不相关的修改混入同一提交。
|
||||
- 提交前使用 `git diff --cached` 检查变更内容。
|
||||
|
||||
2. **提交信息规范**:
|
||||
- 使用 `git commit -m "<type>: <subject>"` 格式。
|
||||
- `<type>` 必须是以下之一:
|
||||
- `feature`:新功能
|
||||
- `bug`:修复 bug
|
||||
- `docs`:文档更新
|
||||
- `style`:代码格式(不影响功能)
|
||||
- `refactor`:重构
|
||||
- `test`:测试相关
|
||||
- `chore`:构建过程或辅助工具的变动
|
||||
- `<subject>` 使用祈使句,首字母小写,不超过 50 个字符。
|
||||
- 需要详细说明时,使用 `-m` 多行提交,空行分隔标题和正文。
|
||||
|
||||
3. **分支管理**:
|
||||
- 主分支: `master`,始终保持可部署状态。
|
||||
- 开发分支:`dev`,集成所有功能开发。
|
||||
- 功能分支:`feature/<编号>`,没有编号时使用`feature/<描述>`,从 `master`切出,完成后合并回 `master`。
|
||||
- 修复分支:`bug/<编号>`,没有编号时使用`bug/<描述>`,从 `master` 切出,完成后合并回 `master`。
|
||||
- 紧急修复:`hotfix/<描述>`,从 `master` 切出,完成后合并回 `master` 。
|
||||
|
||||
4. **代码审查**:
|
||||
- 合并到 `master` 前必须通过 Pull Request。
|
||||
- PR 标题遵循提交信息规范。
|
||||
- PR 描述简要描述修改内容,不要过长的提交信息。
|
||||
|
||||
5. **冲突处理**:
|
||||
- 优先使用 `git rebase` 保持提交历史线性。
|
||||
- 冲突解决后,确保代码可正常编译和运行。
|
||||
- 禁止在公共分支上使用 `git push --force`。
|
||||
|
||||
6. **标签与版本**:
|
||||
- 使用语义化版本号:`v<major>.<minor>.<patch>`。
|
||||
- 版本发布时创建对应的 tag。
|
||||
- 在 `CHANGELOG.md` 中记录版本变更。
|
||||
|
||||
## 示例
|
||||
|
||||
### 提交信息
|
||||
|
||||
```bash
|
||||
# 正确
|
||||
git commit -m "feature: add user authentication"
|
||||
git commit -m "bug: resolve null pointer in order service"
|
||||
|
||||
# 错误
|
||||
git commit -m "update"
|
||||
git commit -m "Fix bug"
|
||||
```
|
||||
|
||||
### 分支操作
|
||||
|
||||
```bash
|
||||
# 创建功能分支
|
||||
git checkout -b feature/user-login master
|
||||
|
||||
# 完成后合并
|
||||
git checkout master
|
||||
git merge --no-ff feature/user-login
|
||||
```
|
||||
|
||||
## 适用范围
|
||||
|
||||
- 所有使用 Git 进行版本管理的项目
|
||||
- 团队协作开发流程
|
||||
- 开源项目贡献
|
||||
Reference in New Issue
Block a user