Appearance
Git 开发规范
分支管理
分支类型
main
: 主分支,用于生产环境部署develop
: 开发分支,用于集成开发feature/*
: 功能分支,用于新功能开发hotfix/*
: 热修复分支,用于紧急修复
分支命名规范
bash
# 功能分支
feature/user-registration
feature/payment-integration
# 热修复分支
hotfix/payment-bug
hotfix/login-error
# 发布分支
release/v1.0.0
分支创建
bash
# 从 develop 创建功能分支
git checkout develop
git pull origin develop
git checkout -b feature/user-registration
# 从 main 创建热修复分支
git checkout main
git pull origin main
git checkout -b hotfix/payment-bug
提交规范
提交格式
bash
<type>(<scope>): <subject>
提交类型
feat
: 新功能fix
: 修复问题docs
: 文档更新style
: 代码格式调整refactor
: 代码重构test
: 测试相关chore
: 构建过程或辅助工具的变动
提交示例
bash
# 新功能
feat(user): 添加用户注册功能
# 修复问题
fix(order): 修复订单状态更新问题
# 文档更新
docs(api): 更新用户接口文档
# 代码重构
refactor(payment): 重构支付模块
工作流程
功能开发流程
bash
# 1. 创建功能分支
git checkout develop
git pull origin develop
git checkout -b feature/user-registration
# 2. 开发功能
git add .
git commit -m "feat(user): 添加用户注册功能"
git push origin feature/user-registration
# 3. 创建 Pull Request
# 在 GitHub/GitLab 上创建 PR
# 4. 代码审查
# 审查者检查代码,提出修改建议
# 5. 合并代码
git checkout develop
git pull origin develop
git branch -d feature/user-registration
热修复流程
bash
# 1. 创建热修复分支
git checkout main
git pull origin main
git checkout -b hotfix/payment-bug
# 2. 修复问题
git add .
git commit -m "fix(payment): 修复支付接口超时问题"
git push origin hotfix/payment-bug
# 3. 合并到 main 和 develop
git checkout main
git merge hotfix/payment-bug
git push origin main
git checkout develop
git merge hotfix/payment-bug
git push origin develop
代码审查
审查要点
- 功能正确性: 代码是否实现了预期功能
- 代码规范: 是否符合项目编码规范
- 可读性: 代码是否易于理解和维护
- 安全性: 是否存在安全漏洞
Pull Request 模板
markdown
## 功能描述
简要描述本次变更
## 变更内容
- 具体变更点1
- 具体变更点2
## 测试情况
- [ ] 单元测试通过
- [ ] 手动测试通过
## 相关 Issue
Closes #123
最佳实践
提交原则
- 原子性: 每次提交只解决一个问题
- 完整性: 提交应该是完整的功能单元
- 可测试性: 每次提交都应该可以独立测试
分支管理
- main 分支: 需要代码审查,禁止直接推送
- develop 分支: 需要代码审查,允许合并
- feature 分支: 允许推送,需要代码审查
常见问题
合并冲突
bash
# 解决合并冲突
git merge feature/new-feature
# 手动解决冲突后
git add .
git commit -m "resolve merge conflict"
提交信息错误
bash
# 修改最后一次提交信息
git commit --amend -m "feat(user): 添加用户注册功能"
相关文档
最后更新:2024-01-20
维护者:DSPlatform技术团队