前言

团队人数增加后,代码管理变成了噩梦。merge冲突频繁,commit历史混乱,代码review效率低下。

直到我们规范了Git工作流,一切才变得井井有条。


一、分支管理策略

1.1 主要分支


bash

# main分支:生产环境代码,每个commit都是一个版本# develop分支:开发主分支,集成所有featuregit checkout -b developgit push origin develop

1.2 功能分支


bash

# 从develop创建feature分支git checkout developgit pull origin developgit checkout -b feature/user-login# 开发完成后,创建Pull Request# 代码review通过后,merge到developgit checkout developgit merge feature/user-logingit push origin develop

1.3 分支命名规范


feature/*        # 新功能bugfix/*         # bug修复hotfix/*         # 紧急修复release/*        # 发布版本docs/*           # 文档更新

二、Commit规范

2.1 Commit Message格式


<type>(<scope>): <subject><body><footer>

2.2 示例


bash

git commit -m "feat(auth): add JWT token validation- Implement token verification middleware- Add token expiration check- Return 401 for invalid tokensCloses #123"

2.3 常见Type


feat:      新功能fix:       bug修复docs:      文档更新style:     代码格式(不影响功能)refactor:  代码重构perf:      性能优化test:      测试相关chore:     依赖更新等

三、代码Review流程

3.1 创建Pull Request


bash

# 推送分支到远程git push origin feature/user-login# 在GitHub/GitLab上创建PR# 填写清晰的描述# 选择合适的reviewer

3.2 Review规范


markdown

## 描述实现用户登录功能,支持邮箱和手机号登录。## 变更类型- [x] Bug修复- [x] 新功能- [ ] Breaking Change## 测试- [x] 单元测试- [x] 集成测试- [x] 手动测试## 关联IssueCloses #456

3.3 处理Review反馈


bash

# 根据反馈修改代码# 提交新的commitgit add .git commit -m "fix: address review feedback"# 推送更新git push origin feature/user-login# 不要force push,让reviewer看到修改历史

四、版本发布

4.1 创建Release分支


bash

# 从develop创建release分支git checkout -b release/v1.0.0 develop# 只在release分支上修改版本号和发布说明# 修复的bug也只在release分支上修复

4.2 合并到main和develop


bash

# 合并到main(生产)git checkout maingit merge --no-ff release/v1.0.0# 创建taggit tag -a v1.0.0 -m "Release version 1.0.0"# 合并回develop,保持同步git checkout developgit merge --no-ff release/v1.0.0# 删除release分支git branch -d release/v1.0.0

4.3 tag管理


bash

# 列出所有taggit tag -l# 查看tag详情git show v1.0.0# 推送tag到远程git push origin v1.0.0

五、冲突解决

5.1 避免冲突


bash

# 经常从develop拉取最新代码git pull origin develop# 定期merge develop到feature分支git checkout feature/user-logingit merge develop

5.2 解决冲突


bash

# 查看冲突文件git status# 手动编辑冲突文件# <<<<<<< HEAD# 你的代码# =======# 其他人的代码# >>>>>>># 解决冲突后git add .git commit -m "fix: resolve merge conflict"

六、常用命令速查


bash

# 查看未提交的修改git diff# 查看暂存区的修改git diff --cached# 查看commit历史git log --oneline --graph --all# 撤销未暂存的修改git checkout .# 撤销已暂存的修改git reset HEAD .# 修改最后一次commitgit commit --amend# 删除远程分支git push origin --delete feature/user-login# 同步fork库git fetch upstreamgit rebase upstream/main

七、自动化工具

7.1 使用Husky进行提交检查


bash

# 安装Huskynpm install husky --save-dev# 添加pre-commit钩子echo 'npm run lint' > .husky/pre-commit# 现在每次commit前都会自动lint

7.2 使用Commitlint规范message


bash

# 安装npm install --save-dev commitlint @commitlint/config-conventional# 配置文件:commitlint.config.jsmodule.exports = {  extends: ['@commitlint/config-conventional']};

八、团队国际化协作

在全球化团队中,Git提交日志和代码注释常用英文。对于非英语使用者,review Pull Request时可能需要理解复杂的代码说明。我们使用同言翻译(Transync AI)来快速翻译PR描述和代码注释,提高跨国团队的沟通效率。


九、常见错误


bash

# ❌ 直接在main分支开发# ✅ 从develop创建feature分支# ❌ 提交未经review的代码到develop# ✅ 通过PR进行代码review# ❌ Commit message混乱# ✅ 遵循commit规范# ❌ 在develop分支修复bug# ✅ 创建bugfix分支然后merge

十、工作流检查清单

  • 创建功能分支前拉取最新代码
  • Commit message遵循规范
  • 代码通过linting和测试
  • 创建有清晰描述的PR
  • 等待代码review
  • 根据反馈修改代码
  • 获得approve后再merge
  • 及时删除已merge的分支
  • 定期更新本地代码

十一、结语

规范的Git工作流不仅提高了团队效率,还降低了bug率和沟通成本。

核心要点就三个:清晰的分支策略、规范的提交信息、严格的代码review

希望这篇文章能帮助你的团队建立更好的开发流程。欢迎在评论区分享你们的Git工作流经验!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐