Git Flow 提供了几个主要的分支,每个分支都有其特定的角色和生命周期:
1.main 分支(或 master 分支)
2.develop 分支
3.feature 分支
4.release 分支
5.hotfix 分支
main 分支
这是项目的主分支,用于保存始终处于可发布状态的代码。
每次版本发布(例如,v1.0.0、v1.1.0)都会在此分支上创建一个标记(Tag)。
这个分支的代码是稳定的、可部署的,任何时候都可以将其部署到生产环境。develop 分支
develop 分支是开发的核心分支,所有的功能开发都是基于 develop 分支进行的。
develop 分支上的代码是开发中的、可能不稳定的,直到完成一次发布。feature 分支
feature 分支用于开发新功能。每个新功能都会从 develop 分支创建一个新的 feature 分支,功能开发完成后,再合并回 develop。
命名约定:feature/xxx(例如 feature/login-page)。
feature 分支的生命周期较短,通常只存在于新功能开发阶段。
# 创建并切换到新的 feature 分支
git checkout -b feature/login-page develop
- release 分支
release 分支用于准备一个新版本的发布。通常,当 develop 分支上的功能开发完成并且已准备好发布时,就会创建一个 release 分支。
在 release 分支上,开发者可以进行一些版本修复、bug 修复、文档更新等,确保发布版本的稳定性。
发布分支上的代码可以做最终测试、集成和调试,直到一切准备好。
一旦完成 release 分支的修改,它将合并到 main 分支和 develop 分支。
# 从 develop 分支创建一个 release 分支
git checkout -b release/1.0.0 develop
- hotfix 分支
hotfix 分支用于修复生产环境中的紧急问题,通常是部署到 main 分支后发现的bug。
hotfix 分支从 main 分支创建,当修复完成后,它会合并回 main 和 develop 分支。
hotfix 分支是用于生产环境的紧急修复,确保修复后的版本可以迅速推送到生产环境。
# 从 main 分支创建 hotfix 分支
git checkout -b hotfix/1.0.1 main
Git Flow 的基本操作流程
- 开发新功能(Feature)
使用 feature 分支开发新功能时,首先从 develop 分支创建一个新的 feature 分支:
git checkout develop
git checkout -b feature/feature-name
开发完成后,将 feature 分支合并回 develop 分支:
git checkout develop
git merge feature/feature-name
- 发布新版本(Release)
当 develop 分支准备好发布时,创建一个 release 分支
git checkout develop
git checkout -b release/1.0.0
在 release 分支上进行最后的修复和测试,完成后合并回 main 和 develop 分支:
git checkout main
git merge release/1.0.0
git tag -a v1.0.0 -m "Release version 1.0.0"
git checkout develop
git merge release/1.0.0
- 热修复(Hotfix)
当发现生产环境中有紧急问题时,从 main 分支创建一个 hotfix 分支:
git checkout main
git checkout -b hotfix/1.0.1
修复完 bug 后,将 hotfix 分支合并回 main 和 develop 分支:
git checkout main
git merge hotfix/1.0.1
git tag -a v1.0.1 -m "Hotfix version 1.0.1"
git checkout develop
git merge hotfix/1.0.1