Git进阶(十七):特性分支

文章目录

    • 一、前言
    • 二、特性分支策略
    • 三、特性分支权限管控
    • 四、特性分支命名
    • 五、变基与合并
    • 六、分支清理
    • 七、落地实践
    • 八、延伸阅读

Git进阶(十七):特性分支

一、前言

Git是目前流行的分布式版本控制系统。每个人的clone的副本都是一个完整的存储库。

Git 仓库分为两种:

  • 本地仓库:开发人员自己电脑上的Git仓库。
    本地仓库分工作区、暂存区、版本库。

  • 远程仓库:远程服务器上的Git仓库

常用命令:

  • git status :查看文件状态。
  • git add :将文件的修改加入暂存区。
  • git reset :将暂存区的文件取消暂存或者是切换到指定版本。
  • git commit :将暂存区的文件修改提交到版本库。
  • git push:推送,将本地仓库文件和版本信息上传到远程仓库。
  • git log: 查看日志。
  • git pull:拉取,将远程仓库文件和版本信息下载到本地仓库。

    分支是Git使用过程中非常重要的概念。使用分支意味着我们的工作可以从开发主线上分离开来,以免影响开发主线。

并行不同时间交付版本的任务时,同一个仓库可以有多个分支,使团队并行开发,各个分支相互独立,互不干扰。

使用主干分支模式的不足?

  • 提交频繁,冲突多,主干代码不稳定,一旦出现问题,其他人同步代码之后,所有工作被阻塞。

  • 也存在开发未完成的代码或者临时代码,因自查或自测不充分,提交到主分支,质量无法保证。

二、特性分支策略

采用“分支开发,主干发布”的特性分支开发策略。

  • Master:用于生产版本的发布。
  • Release:用于功能版本的发布。
  • Develop:用于开发环境的版本发布,是迭代开发的主干分支。
  • Feature:用于特性功能开发,即特性分支。
  • Fix:专门用于Bug修复的分支。

三、特性分支权限管控

为了保证分支策略的落地实施,版本管理员对Master、Release、Develop分支设置为保护分支,仅允许开发人员通过发起代码合并请求修改,而Feature、Fix分支,不设限制,允许开发人员直接进行代码推送,这样既保证了重要分支的稳定性,同时也保证了开发的灵活性。


通过权限控制,限制开发人员修改批次主干分支代码,只能通过特性分支进行合并;在特性分支开展必须的控制活动,通过质量门禁的完整性、 合规性检查后合并到主分支,有利于提高源码质量,保持版本稳定。

四、特性分支命名

  • Master:用于生产版本的发布,保持默认分支名称。
  • Release分支:批次_Release,例如:2411_Release。同批次正式版本提交时间相同合并,2411_日期_Release。
  • Develop分支:批次_Develop,例如:2411_Develop。同批次多任务并行, 2411_任务编号_Develop。
  • Feature分支: feat/批次/任务编号(需求编号)+迭代等可扩展信息/开发人员/日期。
  • Fix分支: fix/批次/任务编号+迭代等可扩展信息/开发人员/日期。

分支建立原则:

  • Develop分支:通过Master分支进行创建。
  • Feature分支:通过Develop分支进行创建。
  • Fix分支:功能测试之前发现的问题,通过Develop分支进行创建;功能测试发现问题,通过Release分支进行创建,修复之后,合并回Develop分支。(务必合并回Dev)

五、变基与合并

分支合并或从远程分支拉取最新代码到本地时,使用交基(rebase)命令,或在pull命令后加-r参数。
变基主要优势在于可以获得更干净的项目历史记录,这会使得后续在查看提交历史时,不会被冗余繁杂的提交历史线干扰,提升团队整体认知成本。

变基适合需要一个干净、线性历史的情况,而合并则更适合需要保留完整历史记录和直观提交历史的情况。
选择哪种方法取决于项目需求和团队的工作流程。

六、分支清理

Git需要及时清理分支的原因主要包括保持仓库整洁、避免混淆和提升团队协作效率。

1、投产稳定后:将Release分支合并到Master,删除已投产的Develop分支、Release分支。

2、Feature分支完成任务或者故事开发,并已成功合并到开发分,删除feature分支。

3、fix分支,完成问题修复,提交功能测试版本之后,删除分支。

七、落地实践

八、延伸阅读

  • 《Git进阶(十一):Git 常用操作汇总》
  • 《Git进阶(二):git revert 用法》
版权声明:如无特殊标注,文章均来自网络,本站编辑整理,转载时请以链接形式注明文章出处,请自行分辨。

本文链接:https://www.shbk5.com/dnsj/72997.html