【idea】idea 中 git 分支多个提交合并一个提交到新的分支

news2024/12/27 13:35:24

一、方法原理讲解

我们在 dev 分支对不同的代码文件做了多次提交。现在我们想要把这些提交都合并到 test 分支。首先我们要明白四个 git 操作,

  • commit:命令用于将你的代码变更保存到本地代码仓库中,它创建了一个新的提交(commit)记录,记录了代码的变更内容以及相关的提交信息(如作者、时间、提交说明等)。
  • push:命令用于将本地仓库中的代码推送(上传)到远程代码仓库,将你的代码变更分享给其他开发者或者备份到远程服务器。
  • cherry pick:命令用于从一个分支中选择性地合并某个提交(commit)到当前分支,它允许你只合并需要的提交而不是整个分支的变更。
  • squash: 用于将多个连续的提交(commit)合并成一个提交,以便清理历史记录或整理提交信息。这个操作通常用于将多个相关的小提交合并成一个更有意义和完整性的大提交,以提高代码库的可读性和维护性。

从上面四个操作,要将A分支的多个提交合并一个提交到新的分支。我们得出两个方法,

  • 方法一:先把A分支已经提交的使用 squash 合并成一个commit,然后 push 到A远程,然后从A远程直接 cherrypick 这一个分支到B分支。
  • 方法二:先把A分支已经提交push到A远程,然后 cherrypick 到B分支本地进行 commit ,再将多个提交使用 squash 合并成一个提交 push 给B远程。

二、对多个提交合并到一个提交 squash

在这里插入图片描述

步骤2.1、选中最先提交的一个记录,右键选择 “Interactively Rebase from Here”

在这里插入图片描述会出现下面的窗口,有多个 action 方式,分别表示以下含义:

  • pick:git会应用这个补丁,以同样的提交信息(commit message)保存提交
  • reword:git会应用这个补丁,但需要重新编辑提交信息
  • edit:git会应用这个补丁,但会因为amending而终止
  • squash:git会应用这个补丁,但会与之前的提交合并
  • fixup:git会应用这个补丁,但会丢掉提交日志
  • exec:git会在shell中运行这个命令

步骤2.2、我们想要选择与之前的提交合并,因此我们选择 squash

在这里插入图片描述
第一个选择 squash 是会报错,因为不能与前面的合并。因此第一个我们还是选择 pick
在这里插入图片描述

步骤2.3、会让我们重新整理提交的备注。

在这里插入图片描述
然后我们就多了一个合并后的新的提交记录
在这里插入图片描述

三、挑选代码到新分支 cherrypick

我们演示以下把代码从 dev 分支选到 test 分支。

步骤3.1、使用 checkout 把代码切到 test

因为 cherrypick 命令是将分支提交挑选到当前分支,因此要先切换到test分支。
在这里插入图片描述

步骤3.2、idea 的 git 取消 cherrypick 自动推送远程

取消选择 file -》setting -》git -》Commit automatically on cherry-pick

在这里插入图片描述

步骤3.3、选中一个要转移的提交,右键选择 cherrypick

这里一定要注意提交记录的分支选择正确,要从 dev 挑选到 test,因此 branch 选择 dev,这里dev也分本地 local 和远程 origin。确认清楚这个提交在本地还是远程。
在这里插入图片描述

四、最后多个提交合并后 push 到远程

在这里插入图片描述
结果验证,日志中的分支选择 origin-》test,可以看到只有一条记录。
在这里插入图片描述

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

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

相关文章

Python 操作PDF图片 – 添加、替换、删除PDF中的图片

PDF文件中的图片可以丰富文档内容,提升用户的阅读体验。除了在PDF中添加图片外,有时也需要替换或删除其中的图片,以改进视觉效果或更新信息。文本将提供以下三个示例,介绍如何使用Python 操作PDF文件中的图片: 目录 …

2017年全国职业院校技能大赛高职组“信息安全管理与评估”样题

培训、环境、资料、考证 公众号:Geek极安云科 网络安全群:624032112 网络系统管理群:223627079 网络建设与运维群:870959784 移动应用开发群:548238632 极安云科专注于技能提升,赋能 2024年广东省高校的技…

面试八股——HashMap

实现原理 红黑树是为了解决链表过长之后,查找时间过长的问题,将链表存储变为红黑树存储。 put方法的实现(5⭐) 相关属性: 1. 容量:初始容量为2^4。 2. 加载因子:初始值为0.75 上面两个属性的…

linux网络编程启动!(开端)

网络设计模式 :就两种模型 b/s 模型 : 浏览器—>服务器 优点是:跨平台。开发成本低 缺点是:网络通信的时候必须要使用http/https协议 http协议 是个应用层协议 不能在磁盘缓存或者从磁盘加载大量数据 http 与https 多了一层加密 c/s模型 …

【Shell】循环结构——for和while循环实例

Shell可以重复地执行特定的指令,直到特定的条件被满足为止。这重复执行的一组指令就叫做循环 特点: 首先,循环条件中使用的变量必须是已初始化的,然后在循环中开始执行每次在循环开始时进行一次测试重复地执行一个代码块 循环实例…

OpenHarmony 实战开发——分布式购物车案例展示~

简介 分布式购物车demo 模拟的是我们购物时参加满减活动,进行拼单的场景;实现两人拼单时,其他一人添加商品到购物车,另外一人购物车列表能同步更新,且在购物车列表页面结算时,某一人结算对方也能实时知道结…

【无监督+自然语言】 GPT,BERT, GPT-2,GPT-3 生成式预训练模型方法概述 (Generative Pre-Traning)

主要参考 【GPT,GPT-2,GPT-3 论文精读【李沐论文精读】-2022.03.04】 https://www.bilibili.com/video/BV1AF411b7xQ/ 大语言模型综述: https://blog.csdn.net/imwaters/article/details/137019747 GPT与chatgpt的关系 图源:L…

JMeter的下载安装与使用(Mac)

1、下载地址​​​​​​https://jmeter.apache.org/download_jmeter.cgi 2、下载Binaries 下的apache-jmeter5.5.tgz 3、解压 4、启动 在bin目录下打开终端,输入sh jmeter 出现jmeter首页界面,即为成功。 5、使用 5.1 语言选择 option选项卡&am…

State.initState() must be a void method without an `async` keyword错误解析

文章目录 报错问题报错的代码 错误原因解决方法解析 另外的方法 报错问题 State.initState() must be a void method without an async keyword如下图: 报错的代码 报错的代码如下: overridevoid initState() async{super.initState();await getConf…

LoRA 引领多模态模型革命,大模型的微调方案

基于LoRA微调多模态大模型 随着 ChatGPT 的火爆,大模型时代降临,普通人难以进行全量微调。 参数高效微调技术应运而生,为科研人员和开发者提供了微调大模型的机会。 用 LoRA 微调 2.7B 参数的 blip2-opt 模型,提升图生文能力&am…

嵌入式学习——C语言基础——day11

1. 字符型数组和字符串的传参 1.1 常量和变量的区别&#xff08;难点&#xff09; 一般常量不能被修改&#xff0c;变量才能被修改 #include <stdio.h> int main(void) { char str[] {"hello world"};//定义数组&#xff0c;数组名为指针常量 char …

数据结构和算法:贪心

贪心算法 贪心算法是一种常见的解决优化问题的算法&#xff0c;其基本思想是在问题的每个决策阶段&#xff0c;都选择当前看起来最优的选择&#xff0c;即贪心地做出局部最优的决策&#xff0c;以期获得全局最优解。 贪心算法和动态规划都常用于解决优化问题。它们之间存在一…

干货整理:好用的文件加密软件有哪些

说到文件加密&#xff0c;想必大家都很熟悉&#xff0c;文件加密已经普遍应用&#xff0c;文件加密是一种重要的安全措施&#xff0c;可以确保数据的机密性、完整性和可用性&#xff0c;降低因数据泄露或丢失带来的风险。 下面小编给大家分享几款常用的加密软件&#xff0c;大…

纯血鸿蒙APP实战开发——评论组件案例实现

介绍 评论组件在目前市面上的短视频app中是一种很常见的场景&#xff0c;本案例使用全局状态保留能力弹窗来实现评论组件。点击评论按钮弹出评论组件&#xff0c;点击空白处隐藏该组件&#xff0c;再次点击评论按钮则会恢复上一次浏览的组件状态。 效果图预览 使用说明 点击…

DDP示例

https://zhuanlan.zhihu.com/p/602305591 https://zhuanlan.zhihu.com/p/178402798 关于模型保存与加载 &#xff1a; 其实分为保存 有module和无module2种 &#xff1b; &#xff08;上面知乎这篇文章说带时带module) 关于2种带与不带的说明&#xff1a; https://blog.csdn.…

Oracle中rman使用记录

最近在项目中&#xff0c;遇到使用RMAN的操作来恢复数据库中某个时间归档日志&#xff0c;RMAN的原理和理解&#xff0c;网友们百度了解一下。我重点将实操部分了。直接上实验环节&#xff0c;让网友更懂。&#xff08;特别提醒&#xff1a;我是1:1用VMware克隆数据库进行RMAN还…

构建高效智能的理赔业务系统:保险科技的未来

随着保险行业的发展和科技的不断进步&#xff0c;理赔业务作为保险服务的重要环节&#xff0c;也在不断演进和改进。传统的理赔流程可能存在效率低下、信息不透明等问题&#xff0c;而现代化的理赔业务系统则能够通过数字化、智能化等手段提升理赔服务的质量和效率&#xff0c;…

Java集成结巴中文分词器、Springboot项目整合jieba分词,实现语句最精确的切分、自定义拆词

文章目录 一、jieba介绍二、集成三、原理四、自定义拆词4.1、方式一&#xff1a;在源码的dict.txt中修改然后重新打包(推荐)4.2、新建文件自定义拆词 五、其他问题 一、jieba介绍 jieba是一个分词器&#xff0c;可以实现智能拆词&#xff0c;最早是提供了python包&#xff0c;…

Qt | 窗口的显示及可见性|标题、透明度、启用/禁用|窗口标志、设置其他属性|获取窗口部件、设置父部件|鼠标光标

​显示事件:QEvent::show,处理函数为 showEvent(QShowEvent*) 隐藏事件:QEvent::hide,处理函数为 hideEvent(QHideEvent* ) 01 QWidget 类中与可见性有关的属性 visible:bool 访问函数: bool isVisible() const; virtual void setVisible(bool visible); 02 QWid…

高频面试题:在浏览器搜索框中输入一个URL的完整请求过程?

相信很多小伙伴在校招或者社招面试中都遇到过这个问题 面试官&#xff1a;小伙子&#xff0c;了解 在浏览器搜索框中输入一个URL的完整请求过程吗&#xff1f;详细说说我&#xff1a;eeemm&#xff0c;不太清出具体的过程。整体过程应该是HTTP请求的过程。 如果在面试中不能很…