git实用操作:git rebase -i 合并多个 commit

news/2024/4/28 18:22:46/文章来源:https://blog.csdn.net/wcc178399/article/details/127520439

我们开发的过程中,可能会有多次的修补提交,就会出现多条提交记录和备注信息,此时我们可以使用 git rebase -i来合并多个commit,以简化提交记录

1.合并最近的 4 次提交纪录,执行:

git rebase -i HEAD~4

2.自动进入 vi 编辑模式:

在这里插入图片描述
有几个命令需要注意一下:

  • p, pick = use commit
  • r, reword = use commit, but edit the commit message
  • e, edit = use commit, but stop for amending
  • s, squash = use commit, but meld into previous commit
  • f, fixup = like “squash”, but discard this commit’s log message
  • x, exec = run command (the rest of the line) using shell
  • d, drop = remove commit
    在这里插入图片描述
    修改完成后,按Esc键回到最下方命令行,输入:wq 完成保存并退出

3.弹出修改备注版面

在这里插入图片描述
完成编辑后,按Esc键回到最下方命令行,输入:wq 完成保存并退出:
在这里插入图片描述待程序运行,最后得到Successfully的结果,即完成合并:
在这里插入图片描述

4.最后再使用 git log

最后再使用 git log 查看,之前的提交信息就都合并成了我们编辑的最后一条
在这里插入图片描述
合并之后再推送的远程仓库,信息条目就清晰很多,条数也会相对较少

5.异常情况处理

在上面第2步如果出现不正常的操作,导致退出了vim编辑页面,这时候如果还想使用git rebase -i HEAD~4进入vim编辑页面是不行的,会提示:

It seems that there is already a rebase-merge directory, and
I wonder if you are in the middle of another rebase.  If that is the
case, please trygit rebase (--continue | --abort | --skip)
If that is not the case, pleaserm -fr "/Users/qinwenjing/Documents/Projects/Test/.git/rebase-merge"
and run me again.  I am stopping in case you still have something
valuable there.

解释的还算清楚,所以不要慌!

使用 git rebase --edit-todo 会再次进入刚才编辑错误退出前的vim状态,这时候可以修改你的编辑。

使用git rebase --abort 表明退出当前的合并请求( 又回到原来的4个commit的状态)

参考文章:
1.https://blog.csdn.net/qinwenjng120/article/details/105735243
2.https://blog.csdn.net/AS_TS/article/details/106983974

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

今天不想上班

无语 - - 为什么项目迁移了 算了 不需要脑子思考复杂的 反正我干就是了,领了工资干了活,我菜那是我的事。 顺便学习一下好了。 可能我基础不太行吧。 关于我和同事新一起合作写一个项目 老板让我优化代码后老板满意了同事被封装的痛苦了。 现在…

TortoiseSVN下载安装及问题总结

文章目录TortoiseSVN介绍下载安装问题使用首先将客户端与服务器进行连接检出提交TortoiseSVN介绍 TortoiseSVN是一个开源的版本控制系统,也就是说Subversion管理者随着时间而改变的数据。这些数据放置在任何一个中央资料档案库(repository)中…

中国定制家具行业深度调研及投资前景预测报告

欧派家居VS索菲亚:家具商业的布局史 家具产品的特性决定了家具产业在经济和社会中的重要地位。随着经济的不断发展,家具行业也发展迅速。目前,欧派家居和索菲亚是国内家具行业的龙头企业主。 2.家具企业布局及经营状况: ——家具经营类型:索菲亚、欧派…

Apollo星火计划学习笔记第四讲1——Apollo高精地图模块

Apollo学习笔记零、目录一、高精地图的作用1.1 相对于传统地图二、高精地图介绍2.1 高精地图构成2.2 高精地图制作2.2.1 地图采集2.2.2 地图制作2.2.3 地图标注工具2.2.4 地图保存三、Apollo高精度地图3.1 高精地图目录结构3.2 高精地图格式3.3 Apollo高精地图API接口四、实践案…

【Gateway】统一网关Gateway学习记录

目录 网关能干什么 网关的技术实现 搭建网关服务 网关作用流程图 路由断言工厂(Route Predicate Factory) gateway中有三种过滤器: 1. 默认过滤器(DefaultFiter) 2. 路由过滤器(GatewayFilter&…

3. Longest Substring Without Repeating Characters (无重复字符的最长子串)滑动窗口

文章目录问题英文中文代码小白的码大佬的码知识点unordered_set 容器具有以下几个特性&#xff1a;总结问题 英文 3. Longest Substring Without Repeating Characters (无重复字符的最长子串) 中文 代码 小白的码 #include <iostream> #include <string> #…

Terraform 基础 申请阿里云资源

之前&#xff0c;资源都定义好了&#xff0c;现在就是去申请资源了。 申请这些资源就需要使用terraform的命令行了&#xff0c;开始初始化后端&#xff0c;后端是有存储文件的&#xff0c;默认情况下是在本地存储的&#xff0c;然后会多一些文件。 &#xff08;下载插件&#x…

在python中安装gensim包(为了使用LDA)

LDA是英文“Latent Dirichlet Allocation”的缩写&#xff0c;意思是隐含狄利克雷分布&#xff0c;是一种主题模型&#xff08;topic model&#xff09;&#xff0c;它可以将文档集中每篇文档的主题以概率分布的形式给出。 gensim包中有LDA的一种实现。 本文介绍gensim包的安…

神经网络中的算法-梯度下降算法

目录 一、概述 二、算法思想 1、一维 2、多维 三、梯度下降类型 1、批量梯度下降算法 2、随机梯度下降算法 3、小批量梯度下降算法 一、概述 梯度下降法&#xff08;Gradient descent &#xff09;是一个一阶最优化算法&#xff0c;通常也称为最陡下降法 &am…

NetworkManager nmcli ipv4 静态ip 笔记221025

nmcli connection modify 可以修改现有连接 con 可以写成 c 到 connection 之间的字段mod 可以写成 m 到 modify 之间的字段nmcli connection modify nmcli connec modify nmcli conne modif nmcii conn modi nmcli con mod nmcli co mo nmcli c m nmcli c modify nmcli conne…

购物中心智能管理系统该如何选择

快鲸智慧楼宇系统作为新一代数智化商管系统&#xff0c;以实际业务场景出发构建产品逻辑&#xff0c;并在传统商管系统基础上&#xff0c;拥有独家的商业大数据加持&#xff0c;同时嵌入了BI智能分析工具&#xff0c;打造了一个招商营运场景的数智化系统&#xff0c;将“人的经…

[C++] 初接触 泛型编程—— C++ 模板分析

泛型编程 C中引入了重载的概念&#xff0c;使得可以编写多个函数名相同但参数、返回值不同的函数&#xff0c;例如&#xff1a; 相同的函数名可以传入不同的参宿&#xff0c;进而调用不同的函数 但&#xff0c;即使有了重载&#xff0c;相同功能的函数 还要分别对不同的类型进…

Python之numpy数组篇(下)

目录 一、数组排序 1、概念 2、升序&#xff0c;最大、最小值 3、原地、横向排序 二、数组内积运算 1、概念 2、代码例子 三、访问数组元素 1、使用介绍 2、行列直接访问 3、切片 4、行列访问扩展 四、数组对函数运算的支持 1、概念 2、例子 五、改变数组形状 1…

1.3.3系统调用

文章目录为什么引入系统调用什么是系统调用系统调用和库函数的区别系统调用的背后为什么引入系统调用 为了防止这样情况的发生&#xff0c;就是防止进程能够随意的去调用我们的系统资源&#xff0c;操作系统提供了系统调用的功能&#xff0c;用户进程想要使用打印机这种共享资源…

12_Vue事件总结

事件总结 事件修饰符连携 准备工作 html <!-- 定义一个容器 --><div class="app"><!-- 事件修饰符连携 --><div class="box" @click="toBaidu"><a href="https://www.baidu.com" @click.stop="toBaid…

Java代码审计前置知识——SpringMVC基础

目录 (一&#xff09;回顾MVC 1.1 什么是MVC Model&#xff08;模型&#xff09; View&#xff08;视图&#xff09; Controller&#xff08;控制器&#xff09; 1.2 Model1时代 1.3 Model2时代 总结 1.4 回顾Servlet 0x01 新建一个Maven工程当做父工程,pom依赖 0x0…

1.1.2操作系统的特征

操作系统是一个系统软件&#xff0c;但与其他系统软件和应用软件有很大的不同&#xff0c;就是它拥有自己的特殊性&#xff0c;及基本特征 首先共享和并发是相互存在的条件共享和并发是虚拟和异步的前提&#xff0c;是操作系统的两个最基本的特征 1并发 拿餐厅吃饭举例子&…

3.3.3JavaScript网页编程——WebAPI(JS之BOM含正则)

目录BOMwindow对象定时器-延时函数setTimeoutJS执行机制&#xff08;执行栈、任务队列&#xff09;面试要问location对象location.href (获取完整url或者赋值)location.search (获取?后面的)location.hash(获取#号后面的)location.reloadnavigator对象&#xff08;检测浏览器移…

10_事件处理阶段

v-on指令 语法 v-on:xxx 这里的xxx指代的是各类事件类型,例如单击,双击,鼠标悬停,键盘监听等等...... 准备工作 准备一个容器,两个按钮,一个按钮不传递参数,另一个按钮传递参数 <body><!-- 创建一个容器 --><div class="subject"><!-- 标…

having where的区别,SQL70 返回更多的产品

返回更多的产品_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/dc91b7d2de3c4603a55995e83210f605?tpId298&tqId2368029&ru/exam/oj&qru/ta/sql-teach-yourself/question-ranking&sourceUrl%2Fexam%2Foj%3Fpage%3D1%26tab%3DSQL%25E7%25A…