当前位置: 首页 > news >正文

使用 rebase 轻松管理主干分支

前言

最近遇到一个技术团队的 dev 环境分支错乱,因为是多人合作大家各自提交信息,导致出现很多交叉合并记录,让对应 log 看起来非常混乱,难以阅读。

举例说明

  1. 假设我们有一个项目,最初develop分支有 3 个提交记录,分别是A、B、C,如下所示
A
B
C
  1. 此时,我们创建了一个feature分支用于开发新功能,feature分支基于A提交创建,并且有D、E、F三个提交记录,此时的分支情况如下:
A
B
C
D
E
F
  1. 如果不进行rebase操作,直接将feature分支合并到develop分支,Git 会自动创建一个合并提交,这样提交历史会变得复杂,呈现出非线性的结构,如下所示:
A
B
C
D
E
F
Merge

这种情况下,提交历史中会出现许多交叉的合并记录,如果同时并线的不只是一个 feature 分支,在就会并行好几个线,非常混乱。

  1. 而此时如果我们现在 feature 分支上进行 rebase1操作,则会呈现如下效果。
A
B
C
D'
E'
F'

可以看到,feature分支的提交历史变得更加线性,基于develop分支的最新状态进行了调整。

  1. 此时再将feature分支合并到develop分支,就会简单很多,提交历史也更加清晰、整洁,如下所示:
A
B
C
D'
E'
F'
Merge'

这样就更加一目了然了,在进行异常的问题定位更加容易确定问题。

Tips

可以使用以下命令查看你们当前团队的分支情况

# 可以使用
git log --graph --oneline

如果主干分支出现以下情况,就可以考虑使用 rebase 变基操作了。
在这里插入图片描述


  1. 在 feature 分支(开发分支)上执行 git rebase develop (主干分支)。 ↩︎

相关文章:

  • 描述城市出行需求模式的复杂网络视角:大规模起点-目的地需求网络的图论分析
  • 数据仓库ODS、DWD、DWS、ADS各层介绍
  • 关于创建UNIX/Linux daemon进程的笔记
  • 【漫话机器学习系列】217.监督式深度学习的核心法则(Supervised Deep Learning Rule Of Thumb)
  • Spark-Streaming简介和核心编程
  • 【盈达科技GEO优化】向量数据库:人工智能营销时代的核心引擎
  • 【信息安全工程师备考笔记】第二章 网络信息安全概述
  • 门控循环单元(GRU)
  • 基于机器学习的房租影响因素分析系统
  • 力扣面试150题--有效的括号和简化路径
  • STM32 中断系统深度剖析
  • 高并发抢券系统设计与落地实现详解
  • 滴滴-golang后端开发-企业事业部门-二面
  • 黑盒测试——等价类划分法实验
  • 日常记录-logback脱敏
  • 准确--CentOS 7 配置 Chrony 同步阿里云 NTP 时间服务器及手动同步指南
  • 代理设计模式:从底层原理到源代码的详细解释
  • opencv图像的梯度处理,边缘检测
  • 基于国产 FPGA+ 龙芯2K1000处理器+翼辉国产操作系统继电保护装置测试装备解决方案
  • 联邦元学习实现个性化物联网的框架
  • 他比李白接地气,比杜甫乐观,比白居易刚毅
  • 封江晚开江早,东北地区主要江河上一冰封期冰层较常年偏薄
  • 联手华为猛攻主流市场,上汽集团总裁:上汽不做生态孤岛
  • 山东一季度GDP为23466亿元,同比增长6.0%
  • 特朗普称无意解雇鲍威尔,美国股债汇反弹、黄金高位下跌
  • 福建一季度GDP为13232.38亿元,同比增长5.7%