git-在当前分支做变基(rebase current onto selected)

news2024/9/20 8:07:55

文章目录

    • git rebase变基
    • git rebase使用场景
    • git rebase还是git merge?
    • 在当前分支做变基
    • 使用总结

git rebase变基

初学git,在合并分支上必定会常用到 git merge 语法。git除了使用合并(merge)集成2个分支之间的更改,还有另外一种称为rebase的方法。

git rebase <基础分支>

rebase的作用是改变基点。rebase把当前分支的基点,由与基础分支的共同祖先处,移动到基础分支的头部位置处,然后以新基点为基础,重新提交当前分支中的更改。

git rebase使用场景

Git中分支merge和rebase的适用场景及区别
参考URL: https://www.cnblogs.com/marblemm/p/7161614.html
git merge rebase的区别及应用场景
参考URL: http://www.mamicode.com/info-detail-1774810.html

两个使用场景是不一样的,merge只是合并另外一个分支的内容,rebase也合并另外一个分支的内容,但是会把本分支的commits顶到最顶端

假设我们现在有3个分支

  • master分支:线上环境使用的分支
  • testing分支:测试环境使用的分支
  • my_feature分支:开发新功能的分支,也就是当前分支

A. 假设我在my_feature上开发了一段时间,之后另外的同事开发的功能正式上线到master分支了,那么我可以在当前的分支下rebase一下master分支,这样我这个分支的几个commits相对于master还是处于最顶端的,也就是说rebase主要用来跟上游同步,同时把自己的修改顶到最上面

B. 我在my_feature上开发了一段时间了,想要放到testing分支上,那就切到testing,然后merge my_feature进来,因为是个测试分支,commits的顺序无所谓,也就没必要用rebase (当然你也可以用rebase)

另外,单独使用rebase,还有调整当前分支上commits的功能(合并,丢弃,修改commites msg)

git rebase还是git merge?

在开发过程中使用git rebase还是git merge,优缺点分别是什么?
参考URL: https://www.zhihu.com/question/36509119

两个使用场景是不一样的,merge只是合并另外一个分支的内容,rebase也合并另外一个分支的内容,但是会把本分支的commits顶到最顶端

merge 的话,会产生一个commit,记录合并的操作,可能是没有冲突自动生成的merge commit,也可能解决冲突后自己编写的 commit。总之多了一个 commit。

支持merge多一点,原因如下:

  • rebase过程中,一个commit出现冲突,下一个commit也极有可能出现冲突,一次rebase可能要解决多次冲突;
  • 合并的历史脉络(冲突)被物理消灭了
  • merge,合并结果不好看,一堆线交错,但合并有冲突的话,只要解一次就行了;

来自网上:有人说:“团队里有新人且水平参差不齐的情况下,建议统一 git merge,不然容易出来麻花,过去解完麻花再传授一番 git rebase 的原理,然后 git push -f 一发又有什么收益呢”。

为了追求Git的线好看,在团队合作中使用rebase说轻点是舍本逐末,说重了是对团队不负责任。个人以及本地项目无所谓。

总结:支持merge多一点,团队合作建议用merge。一般私有的用rebase,公开的用merge。(如果团队成员对于git的分支管理并不娴熟,那我推荐使用merge。)**开源项目中,我们一般会推荐commitor在提交PR前做一次rebase。**审核通过后,PR的commit list会合并成一个patch打到主分支中。所以无论是不是做过rebase,最终表现在master上都只是一个独立的commit。

在这里插入图片描述

在当前分支做变基

Rebase Current onto Selected: 在当前分支做变基。(将所选分支提交加入到当前分支)

变基也是将一个分支的代码整合到另外一个分支。跟merge功能类似,但也存在着很大的不同。变基可以把提交线整合得更加是一条直线。

在这里插入图片描述

$ git checkout dev
$ git rebase master

如上,我在dev分支,我选择吧 dev变基 到main,意思就是把main和合并到到dev和merge功效差不多,不同的是我们的commit提交就是置于最新的顶端。

总结:我们当前在哪个分支,选择某个分支,操作merge或者rebase都是把别人分支的东西合并到我当前的分支上。

使用总结

我们可以在自己独立的分支上,把代码变基到协作分支上,这样既不影响和别人的协作,也可以让自己的分支更加的简洁。

在本地分支中使用 rebase 来合并主分支的改动,是为了让你的本地提交记录清晰可读。(当然, rebase 不只用来合并 master 的改动,还可以在协同开发时 rebase 队友的改动。)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/656512.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

R -- corrplot包

文章目录 常用参数简介method测试部分type参数测试diag参数测试order参数测试 常用参数简介 corrplot包常用参数介绍&#xff1a; corr: 必需参数&#xff0c;表示相关性矩阵&#xff0c;可以是数据框或者矩阵。 method: 表示绘制相关性矩阵的方法&#xff0c;有以下几种取值…

H5语义化标签

语义化标签 HTML5引入了一组语义化标签,这些标签旨在更好地描述网页内容的结构和含义。通过使用这些标签,可以提高网页的可读性、可访问性、搜索引擎优化,以及代码的可维护性。以下是对HTML5语义化标签的详细解释: <header>:用于定义页面或区块的页眉部分,通…

centos8 KDC认证

20国赛公开卷KDC做法&#xff08;个人整理&#xff09; 先根据题意&#xff0c;用chrony服务同步时间 Linux-1为KDC服务器&#xff0c;认证Linux-2和Linux-3.三台都先同步时间。 所有的Linux selinux都为enforcing&#xff0c;防火墙都是打开的。此次为临时测试整理&#xff…

Java常见面试题之SSM | Spring Boot(不定时更新)

IOC DI机制 IOC的意思是控制反转,控制的意思啊由Spring 工厂控制对象,反转是从我们主动创建好对象反转为等待Spring 工厂的注入 DI是依赖注入,组件需要的依赖对象由容器注入,主要通过setter 构造器 接口三种注入方式注入. AOP 面向切面编程 AOP思想是做无侵入式的功能增强,即在…

English Learning - L3 作业打卡 Lesson6 Day40 2023.6.13 周二

English Learning - L3 作业打卡 Lesson6 Day40 2023.6.13 周二 引言&#x1f349;句1: As they are expected to be hungry after their long journey, food is laid out for them.成分划分弱读连读爆破语调 &#x1f349;句2: Specially-made lanterns are hung outside each…

ASEMI代理光宝高速光耦LTV-6341特征,LTV-6341应用

编辑-Z LTV-6341参数描述&#xff1a; 型号&#xff1a;LTV-6341 储存温度Tstg&#xff1a;-55~ 150℃ 工作温度Topr&#xff1a;-40~ 125℃ 总输出电源电压(VCC –VEE)&#xff1a;35V 平均正向输入电流IF&#xff1a;25mA 反向输入电压VR&#xff1a;5V 输入电流&…

第15章_锁

第15章_锁 事务的 隔离性 由这章讲述的 锁 来实现。 1. 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题&#xff0c;当多个线程并发访问某个数据的时候&#xff0c;尤其是针对一些敏感的数据&#xff08;比如订单、金额等)&…

老板喜欢表现型管理者,而不是实干型管理者?

最近热搜榜&#xff1a;月薪几万运营总监只会管鸡毛蒜皮 很多老板在招聘方面往往会有些着急&#xff0c;他们可能会把同样的项目交给两个团队去完成&#xff0c;然后比较两个团队的表现。 其中&#xff0c;t1团队的负责人老王&#xff0c;整天忙于拍视频、发朋友圈、写汇报&am…

2023年江西省赣州市职业院校技能大赛(中职组) 网络安全竞赛试题(6月17日竞赛真题))

2023年江西省赣州市职业院校技能大赛&#xff08;中职组&#xff09; 网络安全竞赛试题 三、竞赛任务书内容 &#xff08;一&#xff09;拓扑图 &#xff08;二&#xff09;A模块基础设施设置/安全加固&#xff08;200分&#xff09; 一、项目和任务描述&#xff1a; 假定你…

宾利添越升级ACC自适应巡航+抬头显示HUD+Naim音响案例分享

大家好&#xff0c;我是小志bzs878&#xff0c;专注名车原厂升级&#xff0c;欢迎戳戳右上角“”号关注一下&#xff0c;持续为您带来精彩改装案例 今天装车一台宾利添越&#xff0c;几百个W的气场非常强大的豪车还需要加装什么项目&#xff1f; 车子还未上牌&#xff0c;今天…

python---------xpath提取数据------打破局限

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com 目录 为什么要学习XPATH和LXML类库 什么是XPATH 认识XML XML的节点关系 常⽤节点选择⼯具 节点选择语法 节点修饰语法 选择未知节点 lxml库 _____________________________________________…

层次分析法(MATLAB)

对之前的学习进行总结&#xff0c;整个比赛下来好像就用到了这个方法&#xff0c;最后也不知道对不对&#xff0c;反正最后还有点赶&#xff0c;就是很懵的那种&#xff0c;对于层次分析话的还是有点了解了&#xff0c;由于是纯小白&#xff0c;有错误的地方希望各位大佬能够指…

微服务远程调用openFeign整合

✅作者简介&#xff1a;大家好&#xff0c;我是Cisyam&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Cisyam-Shark的博客 &#x1f49e;当前专栏&#xff1a; 微服务探索之旅 ✨特色专…

go详细环境配置(windows)

下载go 安装包 官网&#xff1a; https://go.dev/dl/ 下载压缩包&#xff0c;解压 环境变量配置 GOROOT 配置你解压的目录 在Path中追加一条 %GOROOT%\bin 这里go对比JAVA还多了一个配置&#xff1a; GOPATH 配置go以后项目的地址 并在自己新建的GOPATH路径文件夹下新建三…

微服务中常见问题

Spring Cloud 组件 Spring Cloud五大组件有哪些&#xff1f; Eureka&#xff1a;注册中心 Ribbon&#xff1a;负载均衡 Feign&#xff1a;远程调用 Hystrix&#xff1a;服务熔断 Zuul/Gateway&#xff1a;服务网关 随着SpringCloud Alibaba在国内兴起&#xff0c;我们项目中…

MySQL安装教程(2023年,4月)

一、MySQL下载&#xff08;安装版&#xff09; 1、进入MySQL官网 官网地址&#xff1a;https://www.mysql.com/ 2、点击【DOWNLOADS】。 3、向下滑&#xff0c;点击【MySQL Community (GPL) Downloads】下载MySQL社区版。 4、点击【MySQL Installer for Windows】下载MySQL安…

pandas解决数据缺失、重复的方法与实践

1. 数据缺失 常见的数据缺失是指一条数据记录中&#xff0c;某个数据项没有值&#xff0c;延申到实际应用中&#xff0c;还有一种时间序列的缺失&#xff0c;例如按整点采集数据&#xff0c;缺少某一时刻的数据&#xff08;缺少一整行数据&#xff09;。 解决方法&#xff0c…

Type-C PD显示器方案简介

方案概述 LDR6020 Type-C PD显示器方案可以给显示器提供一个全功能C口&#xff0c;支持手机&#xff0c;电脑&#xff0c;游戏主机等一线投屏功能&#xff0c;同时支持PD快充输出。LDR6020内置了 USB Power Delivery 控制器和 PD BMC PHY 收发器&#xff0c;支持PD2.0/3.0等快…

leetcode:1848. 到目标元素的最小距离(python3解法)

难度&#xff1a;简单 给你一个整数数组 nums &#xff08;下标 从 0 开始 计数&#xff09;以及两个整数 target 和 start &#xff0c;请你找出一个下标 i &#xff0c;满足 nums[i] target 且 abs(i - start) 最小化 。注意&#xff1a;abs(x) 表示 x 的绝对值。 返回 abs(…

Jenkins之节点的使用

节点概念 Jenkins服务运行在一台服务器上&#xff0c;服务器的资源是有限的&#xff0c;Jenkins服务的构建速度受服务器资源影响&#xff0c;也是有限的。当我们需要构建的项目比较多或规模比较大的时候&#xff0c;可能会超出Jenkins的构建能力&#xff0c;超出其构建能力&am…