«

GIT FLOW 工作流

AzerothSong 发布于 阅读:699 git


我个人开发过程中一般使用git管理,公司内部也会推行一下这种协作方式

Git Flow 是一种基于 Git 的分支管理模型,它为项目的开发过程提供了一种结构化的方法。Git Flow 由 Vincent Driessen 提出,特别适合于有明确发布周期的项目。

分支模型

Git Flow 主要使用以下几种类型的分支:

主分支(master):

该分支用于保存生产环境的代码。每次发布的版本都会被标记(tag)在这个分支上。

开发分支(develop):

该分支用于开发过程中的集成工作,所有的新特性和修复都在这个分支上进行。当开发完成后,代码会合并回主分支。

特性分支(feature):

这些分支用于开发新特性,通常是从 develop 分支派生而来。特性开发完成后,会将其合并回 develop 分支。

修复分支(hotfix):

当在 master 上发现紧急问题时,可以直接从 master 分支创建修复分支。修复完成后,将其合并回 master 和 develop 分支。

发布分支(release):

当 develop 分支上的功能准备好发布时,可以创建一个 release 分支。此分支用于准备发布版本,例如进行最后的测试和修复小bug。发布完成后,合并回 master 和 develop 分支。

分支操作流程

以下是 Git Flow 的基本操作流程:

创建特性分支:

git checkout develop
git checkout -b feature/新特性

完成特性开发并合并:

git checkout develop
git merge --no-ff feature/新特性
git branch -d feature/新特性

创建发布分支:

git checkout develop
git checkout -b release/版本号

完成发布并合并:

git checkout master
git merge --no-ff release/版本号
git tag -a v版本号 -m "发布版本版本号"
git checkout develop
git merge --no-ff release/版本号
git branch -d release/版本号

创建修复分支:

git checkout master
git checkout -b hotfix/修复名称

完成修复并合并:

git checkout master
git merge --no-ff hotfix/修复名称
git tag -a v新版本号 -m "修复版本"
git checkout develop
git merge --no-ff hotfix/修复名称
git branch -d hotfix/修复名称

命令是比较多的,这里推荐使用git工具 毕竟有时候命令行输入还是比较麻烦的,工具可以通过简单的输入然后点击就结束了SourceTree 安装方式请自行百度

优点

项目结构清晰,适合团队协作。明确的分支策略,有助于管理开发、测试和发布。方便处理多个特性和修复,减少冲突的可能性。

缺点

对于小型项目,可能显得过于复杂。需要团队成员遵循固定的工作流程,可能会增加沟通成本。

总结

Git Flow 是一种强大而灵活的工作流,适用于需要定期发布和维护的项目。通过合理使用各类分支,可以让团队成员在开发过程中协同工作,有效管理代码变更。理解并遵循 Git Flow 的原则,有助于提高开发效率和代码质量。并不是知道了工作流就一定要使用,根据项目的需求和开发团队的人员数量决定是否使用。如果一个项目就你一个人负责 完全没有必要走工作流,将稳定版本打上标签也是能满足需求的

参考资料:
https://www.ruanyifeng.com/blog/2015/12/git-workflow.html
https://liaoxuefeng.com/books/git/branch/index.html

git