在技术团队里,我亲身经历了
从一个 2~3 人初创阶段的团队到百人规模技术团队的演变
也见证了技术栈和系统架构从传统到现代的变迁
团队技术、架构和运维模式经历了翻天覆地的变化。复盘一下自己走过的路,所踩过的那些坑,背过的锅。。。
这里来复盘一下使用 git 的一些经历。最早团队是没有使用任何的代码管理工具,基本是大家都是一人一个团队没太多交互,后面人多了就使用 SVN,对于团队项目代码或项目文档是非常方便的,再后来就使用了 git 来管理。那么你的团队真的会使用 git 吗?git 的分支应该如何使用呢?
一般来说使用 git 的工作流程比较公认的就是两种,Git Flow和GitHub Flow。
添加图片注释,不超过 140 字(可选)
Git Flow 是一种非常流行的分支管理模型,由 Vincent Driessen 于 2010 年提出,旨在为团队提供清晰、规范的代码管理方法。通过这种工作流,团队可以更好地组织和管理代码的开发、测试与发布。Git Flow 包含了多个长期存在的分支,并对每个分支的用途和使用场景做了明确的划分。
添加图片注释,不超过 140 字(可选)
一、Git Flow 中的分支类型及用途
- 主分支(main 或 master)
- 用途:生产环境中的稳定代码
- 使用成员:运维人员
- 开发分支(develop)
- 用途:开发的主分支
- 使用成员:开发人员
- 功能分支(feature/*)
- 用途:新功能开发的分支,开发完合并至develop分支
- 使用成员:开发人员
- 发布分支(release/*)
- 用途:提供给测试人员测试
- 使用成员:测试人员
- 修复分支(bugfix/*)
- 用途:在开发或测试过程中发现的非生产 Bug 分支
- 使用成员:开发人员
- 紧急修复分支(hotfix/*)
- 用途:用于生产环境中发现的紧急问题的修复。
- 使用成员:开发人员
二、工作流程
- 功能开发:开发人员从 develop 分支创建 feature 分支,开发完成后合并回 develop。
- 集成和测试:集成完成后,从 develop 分支创建 release 分支,测试人员使用 release 分支进行功能和回归测试。
- 发布阶段:测试完成且验收通过后,合并 release 分支到 main 分支。
- 紧急修复:如果生产环境发现问题,使用 hotfix 分支进行修复,并合并回 main 和 develop。
总结
Git Flow 提供了清晰的工作流,通过明确的分支划分和权限管理,保障了代码的稳定性和版本的可控性。对于中大型项目和需要显式版本控制的团队,这是一种非常适合的分支管理策略。不过也存在一定的局限性:
- 复杂性:Git Flow引入了复杂性,由于多个长期存在的分支,这使得它对于较小的项目或采用持续交付实践的团队不太合适。
- 开销:管理和合并多个分支可能会减慢开发过程。
添加图片注释,不超过 140 字(可选)
Git Flow 的提出者也说过 Git Flow是一种非常流行的Git分支管理模型,但它并不是“万能药”。如果您的团队正在进行软件的持续交付,我建议采用更简单的工作流程(例如GitHub flow),而不是尝试将 git-flow 硬塞到您的团队中。
相比 Git Flow GitHub Flow 是一种 更 简单而敏捷的 Git 分支管理模型,它由 GitHub 推广,旨在支持 持续交付 和 快速迭代。GitHub Flow 只包含master和feature 分支适用于小型团队和 Web 应用开发。它通过更少的分支和简单的工作流来提高开发效率和敏捷性。
添加图片注释,不超过 140 字(可选)
我是栈江湖,如果你喜欢此文章,不要忘记关注+点赞哦!你的支持是我创作的动力。如果你有任何意见或建议,欢迎在下方留言。若转载,请注明文章来源。