命令行--git--多次commit如何合并成一个commit

news2024/11/17 8:41:48

参考:https://blog.csdn.net/qq_50652600/article/details/120800309
在我们平时开发中,我们提交代码免不了要和git打交道,那么我们肯定是先从预发分支上(公司一般都用pre命名,这里为了方便演示用master)上拉去最新的代码,然后自己在上面在切一个自己的功能分支(gongeng)进行开发。

    但是如果我们一个功能模块开发完了之后,肯定提交了许多次,如果我们想把这么多提交记录都merge到我们的master分支上,肯定是不友好和不雅观的。所以我们需要将我们许多次的提交记录合成一次的提交记录,在合并到我们的pre分支上。(多说一句:一般自己的功能分支上开发完成之后,肯定是先合并到测试分支上先测试通过的,然后再将功能分支的代码合并到预发分支,这里为了方便,省去了测试分支)

如果觉得命令行操作繁琐,不想用命令行操作,可以用idea图形化工具操作:idea–git–如何将多次commit合成一个点
1 进入仓库 查看commit (命令:git log)
在这里插入图片描述
由此我们可以看见我在自己的功能分支上提交了3次记录分别按照时间倒序排列

2 使用rebase命令进行变基(命令:git rebase -i HEAD~3)
在这里插入图片描述
pick:保留该commit

squash:将该commit和前一个commit合并

故如果我们想要将此3次提价合并成一个提交,需要将commit2和commit3的pick改成squnsh(缩写“s”)也可。如下图:
在这里插入图片描述
提示:按“i”键即可进入vim编辑模式进行修改,修改完成之后,按“esc”键进行退出,再次按“:”进入底线命令模式,输入“wq”进行保存后会自动出现commit message信息界面。此时我们可以根据情况保留或者删除多余注释
在这里插入图片描述
完成之后我们继续保存退出(可按照之前的提示操作)
在这里插入图片描述
3 再次查看记录(命令:git log)
在这里插入图片描述
4 强制推送到远程(命令:git push -f)

提示:由于我是自己新建的分支,没有与远端建立连接 所以需要执行git push -f --set-upstream origin gongneng 命令,大家在公司开始只需执行git push -f命令即可

在这里插入图片描述
现在我们在自己的功能分支上已经将多个点压成了一个点(多个分支合成一个分支),现在只需将这一个点cherry-pick到我们的预发分支即可。

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

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

相关文章

测试工程师首用chatGPT,编写python读取xmind测试用例chatgtp+python+xmind

背景 有用xmind写测试用例的吧,统计一个xmind的条,需要花大量的时间,还有要统计有多少条冒烟的,多少条不通过的,还有通过的条数。 需求 快速使用python,写一个简单的脚本,统计所有xmind节点&…

FPGA_学习_09_PWM呼吸灯

PWM在三相电机控制中,有着非常重要的地位。 如果你需要用FPGA去实现三相电机的控制, PWM这一关是绕不过的。好在PWM的基本原理是比较简单的。所以原理部分本文就略过,本文基于PWM实现呼吸灯。 1 时序 {signal: [{name: clk, wave: p....…

4 STM32启动过程(以Cortex-M3为例)(保姆级介绍)

设计知识点补充在前: 1.关于存储器映射、存储器重映射、内存映射、地址映射、地址转换等计算机专业名词详解 参考见 关于存储器映射、存储器重映射、内存映射、地址映射、地址转换等计算机专业名词详解_Vincent_Song的博客-CSDN博客 2.哈佛结构和冯诺依曼结构的区别…

vue2中左侧菜单和头部tab标签联动

效果图 我这里是使用的vue2 element-ui来实现的,代码可以直接拿来使用 一、首先先安装element-ui element-ui官网 npm i element-ui -S 然后在main.js里面配置,安装官网的步骤来就可以了,这里就不一一介绍了 import Vue from vue; impor…

用wget等命令行工具下载Jenkins上的文件

背景 现在一般公司的内部CI系统都用Jenkins实现,本地部署的时候我会将待测试文件下载到本地,再上传到Linux开发板,但能否从Linux开发板直接下载呢?只要Linux与Jenkins server之间的网络是联通的,那就可以 解决方法 …

【从零开始学习JAVA | 第二十三篇】集合体系结构

目录 前言: 单列集合: set与list的区别: 双列集合: map的特点: 总结: 前言: JAVA中为我们提供了很多集合,这些集合都有自己很独特的特点,因此我们要学习所有的…

网络安全合规-网络安全工程师发展前景(三)

上海网络安全工程师工资按工作经验统计,其中应届毕业生工资5250,0-2年工资8910,3-5年工资11330,8-10年工资13500,6-7年工资16170,该数据仅供参考。 北京网络安全工程师工资按工作经验统计,其中…

python selenium 定位鼠标悬浮后的新弹窗数据

背景 最近需要获取网页上的标签数据,但是标签大于3个以后是隐藏的,需要鼠标hover上去才显示。如下图,图一是刚进来界面展示的,需要知道额外的7个标签则需要将鼠标移动到目标上面去。 但是比较尴尬的一个点是,当游览器打…

数据结构C语言版本(中)

第四章 串 串:限定数据元素类型的线性表。 应用实例: 编辑软件(本质上是字符串处理) 信息检索、病毒查找(字符串比较) 第一节 逻辑结构 一、定义 串是由字符组成的线性表。 STRING(D,S,P) D {ai| ai∈CHARACTER(字符集), i0,1…

Verilog基础之八、多路选择器实现

一、前言 选择器在FPGA中是基础的组成部分,英文全称为Multiplexer,为一个多输入单输出的结构。以器件xc7k480tffv1156为例,在slice中,也可以看到F7AMUX,F8MUX,这两个MUX都是二输入单输出的选择器。 二、工程…

【雕爷学编程】Arduino动手做(128)---2路I2C电平转换模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

VR虚拟现实技术为机械专业教学带来新思路

随着虚拟现实技术的发展,VR已经成为机械专业教学的一种新方式。它可以为学生提供更加生动、直观的学习体验,同时也可以帮助教师更好地进行教学和评估。以下是广州华锐互动总结的一些常见的应用场景: 模拟实验和操作:VR可以为学生提…

(UE4/5) PS中生成LUT进行UE4/5的色域颜色校正

整理自官方:使用虚幻引擎查找表(LUT)进行颜色校正 | 虚幻引擎5.2文档 (unrealengine.com) 一、Unreal Engine中截图 在UE4/5中截一张场景图(比较有代表性的) 然后,用这张图片:(不要…

Qt使用事件(event)与定时器实现字幕滚动

目录 1、效果展示2、实现思路3、滚动窗口部件3.1、成员变量3.2、事件重写3.3、成员方法3.3、方法实现 1、效果展示 我们经常能够在外面看到那种滚动字幕,那么就拿qt来做一个吧。 2、实现思路 实现一个窗口部件,这个窗口部件显示了一串文本标语,它会每…

H3C-HCL-SE-“01-路由备份与链路聚合实验“

实验拓扑图: 实验需求: 1、按照图示配置 IP 地址,R3 上连接 192.168.X.X/24 4个业务网段 2、配置 RIPv2 协议使全网互通,R1 和 R3 的直连链路不运行 RIP 3、R1 上配置静态路由直接经过 R3 到达所有业务网段 4、R1 和 R2 上不允…

第八十五天学习记录:C++核心:内存分区模型

内存分区模型 C程序在执行时,将内存大方向划分为4个区域 1、代码区:存放函数体的二进制代码,由操作系统进行管理 2、全局区:存放全局变量和静态变量以及常量 3、栈区:由编译器自动分配释放,存放函数的参数…

【雕爷学编程】Arduino动手做(129)---TTS文字转语音合成模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

python爬虫_requests入门指引

文章目录 ⭐前言⭐requests库💖 pip安装requests💖 requests get💖 requests post 结束 ⭐前言 大家好,我是yma16,本文分享关于python的requests库用法。 该系列文章: python爬虫_基本数据类型 python爬虫…

Edge浏览器可以多开吗?

问答链接:Edge浏览器可以多开吗? 可以。 如果你的edge浏览器是默认路径安装的,那么打开命令提示符窗口输入以下两条命令即可启动一个数据完全隔离的edge浏览器。 mkdir C:\logs001 "C:\Program Files (x86)\Microsoft\Edge\Applicati…

shell [[]] 语法错误解决方式

错误如图: /linux/install.sh:行15: if [[ $contrainsha e *$contrainsname* ]] /linux/install.sh:行15: 条件表达式中有语法错误 附近有语法错误/linux/install.sh:行15: ]] [[]]语法 当[[ ]]判断expr成立时,退出状态为0,否则为非0值。…