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