Git 工作流
Git工作流是指团队在项目中管理代码变更的策略。不同规模、不同类型的项目可能适用不同的工作流。
常用工作流
1. 集中式工作流
所有开发者直接在master/main分支上工作,类似SVN的使用方式。
适用场景:小型团队、个人项目
优点:
- 简单易学
- 无额外分支管理开销
缺点:
- 容易产生冲突
- 不适合大型团队
2. 功能分支工作流
为每个功能创建独立的分支,开发完成后合并到主分支。
命令:
# 创建功能分支
git checkout -b feature-login
# 开发完成后合并到主分支
git checkout main
git merge feature-login
# 删除功能分支
git branch -d feature-login
适用场景:中小型团队
3. Gitflow工作流
使用功能分支、发布分支和热修复分支的规范化工作流。
分支类型:
| 分支 | 命名规则 | 用途 | 生命周期 |
|---|---|---|---|
| master/main | 主版本号 | 生产环境代码 | 长期 |
| develop | develop | 开发主分支 | 长期 |
| feature | feature/* | 新功能开发 | 短期 |
| release | release/* | 发布准备 | 短期 |
| hotfix | hotfix/* | 紧急修复 | 短期 |
命令示例:
# 开始新功能
git checkout -b feature-new develop
# 完成功能,合并到develop
git checkout develop
git merge feature-new
git branch -d feature-new
# 开始发布准备
git checkout -b release-1.0 develop
# 完成发布,合并到master和develop
git checkout master
git merge release-1.0
git tag -a v1.0.0 -m "版本 1.0.0"
git checkout develop
git merge release-1.0
git branch -d release-1.0
# 紧急修复
git checkout -b hotfix-1.0.1 master
# 修复完成后合并
git checkout master
git merge hotfix-1.0.1
git tag -a v1.0.1 -m "版本 1.0.1"
git checkout develop
git merge hotfix-1.0.1
git branch -d hotfix-1.0.1
4. Forking工作流
每个开发者拥有自己的远程仓库,通过Pull Request贡献代码。
适用场景:开源项目
命令:
# Fork上游仓库后克隆到本地
git clone https://github.com/yourname/project.git
cd project
git remote add upstream https://github.com/original/project.git
# 创建功能分支
git checkout -b feature-new
# 推送到你自己的远程仓库
git push origin feature-new
# 在GitHub发起Pull Request
选择工作流的建议
| 团队规模 | 推荐工作流 |
|---|---|
| 1-3人 | 集中式或功能分支 |
| 3-10人 | 功能分支或Gitflow |
| 10人以上 | Gitflow或Forking |
| 开源项目 | Forking |
最佳实践
- 保持分支简短干净
- 定期从主分支拉取更新
- 使用有意义的分支命名
- 合并前进行代码审查
- 及时删除已合并的分支