Skip to main content
Version: 3.0.1

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 进行代码审查
  • 设置必要的审查规则
  • 使用自动化测试和检查

选择适合你团队的工作流程,并保持一致性,这样可以提高协作效率并减少冲突。