Git 工作流程
本章将介绍几种常见的 Git 工作流程,帮助你选择适合团队协作的方式。
集中式工作流
特点
- 类似 SVN 的工作方式
- 只有一个主分支(main/master)
- 所有开发者直接向主分支推送代码
适用场景
- 小型团队
- 简单的项目
- 不需要复杂分支管理的场景
操作流程
# 克隆仓库
git clone https://github.com/user/repo.git
# 拉取最新代码
git pull origin main
# 开发新功能
# ... 编写代码 ...
# 提交更改
git add .
git commit -m "添加新功能"
# 推送代码
git push origin main
功能分支工作流
特点
- 为每个新功能创建独立分支
- 功能完成后合并到主分支
- 避免直接在主分支上开发
操作流程
# 从主分支创建功能分支
git checkout -b feature/new-feature
# 开发功能
# ... 编写代码 ...
# 提交更改
git add .
git commit -m "实现新功能"
# 切换回主分支并拉取最新代码
git checkout main
git pull origin main
# 合并功能分支
git merge feature/new-feature
# 删除功能分支
git branch -d feature/new-feature
# 推送更新
git push origin main
Gitflow 工作流
分支结构
main: 稳定版本分支develop: 开发分支feature/*: 功能分支release/*: 发布分支hotfix/*: 热修复分支
操作流程
开始新功能
git checkout develop
git pull origin develop
git checkout -b feature/new-feature
完成功能
git checkout develop
git pull origin develop
git merge --no-ff feature/new-feature
git branch -d feature/new-feature
git push origin develop
准备发布
git checkout develop
git pull origin develop
git checkout -b release/1.0.0
# 进行测试和修复
git checkout main
git merge --no-ff release/1.0.0
git tag -a v1.0.0 -m "版本1.0.0"
git checkout develop
git merge --no-ff release/1.0.0
git branch -d release/1.0.0
热修复
git checkout main
git pull origin main
git checkout -b hotfix/urgent-fix
# 进行修复
git checkout main
git merge --no-ff hotfix/urgent-fix
git tag -a v1.0.1 -m "热修复版本1.0.1"
git checkout develop
git merge --no-ff hotfix/urgent-fix
git branch -d hotfix/urgent-fix
Forking 工作流
特点
- 每个开发者有自己的远程仓库副本
- 通过 Pull Request 提交代码
- 适合开源项目
操作流程
# 1. Fork 主仓库到自己的账户
# 2. 克隆自己的仓库
git clone https://github.com/your-username/repo.git
# 3. 添加主仓库为上游
git remote add upstream https://github.com/original-owner/repo.git
# 4. 创建功能分支
git checkout -b feature/new-feature
# 5. 开发并提交
git add .
git commit -m "实现新功能"
git push origin feature/new-feature
# 6. 创建 Pull Request
# 7. 同步主仓库更新
git fetch upstream
git checkout main
git merge upstream/main
选择合适的工作流程
考虑因素
- 团队规模: 小团队适合简单工作流,大团队需要更结构化的流程
- 项目复杂度: 复杂项目需要更严格的分支管理
- 发布频率: 频繁发布需要自动化流程
- 团队经验: 选择团队熟悉的工作流程
推荐配置
# 配置默认推送行为
git config --global push.default current
# 配置 rebase 策略
git config --global pull.rebase true
# 配置自动设置上游分支
git config --global push.autoSetupRemote true
最佳实践
提交规范
- 使用清晰的提交信息
- 遵循约定式提交(Conventional Commits)
- 保持提交的原子性
分支命名
feature/: 新功能开发bugfix/: bug 修复hotfix/: 紧急修复release/: 版本发布docs/: 文档更新
代码审查
- 使用 Pull Request 进行代码审查
- 设置必要的审查规则
- 使用自动化测试和检查
选择适合你团队的工作流程,并保持一致性,这样可以提高协作效率并减少冲突。