Git如何将多个commit合并一个commit

news2024/11/18 20:02:50

问题场景:我在fork的仓库提交多个commit后,准备向原仓库提交pr,但是原仓库要求一个pr一个commit,因此需要先将这些commit合并为一个。

1.先拿到要合并的commit中最早的一个的commit id,然后进入仓库,使用如下git log命令拿到这个commit的前一个commit的id(打印出的第二个,如下图)
git log --pretty=format:"%H %P" -n 1 <最早的一个的commit id>

在这里插入图片描述

2.然后基于这个commit id进入rebase模式
git rebase -i 871c44f849b8af50ae2cb3289958336591b97941

如下我要将这些commit合并为一个,将第一个pick下的所有行开头的pick都改成s即可(s表示与上一个commit合并)
在这里插入图片描述
一个一个改显然很麻烦,如何多行同时编辑:

第一步多行同时删除:先将光标移动到要修改的行首,使用ctrl+v快捷键进入VISUAL BLOCK模式,然后使用键盘的上下左右箭头将光标移动到最后一个pick的c后面,然后按d删除所有选中的pick

若操作失误可使用esc退回普通模式,在使用shift+:进入命令模式,输入u回车撤销上一步编辑

在这里插入图片描述

第二步多行同时编辑:光标再移动到要编辑的首行,然后使用ctrl+v快捷键再次进入VISUAL BLOCK模式,将光标向下移动到最后一行行首。shift+i(即大写I)进入编辑模式,此时会自动跳到要操作的第一行,直接输入字符s,然后按esc键 后面的行就同步刷新了。

在这里插入图片描述
最后shift+:进入命令模式输入wq保存。此时会跳转到合并后的commit的信息编辑页面,当前显示的是所有合并commit的信息,看起来很多很乱,我们可以把这些信息全部干掉,然后为这个新commit编写一个简短的提交信息,选择一行开始直接长按d可以快速进行删除,和vim中的编辑其实是一样的
在这里插入图片描述
最终结果如下,然后shift+:进入命令模式输入wq保存

在这里插入图片描述

3.再使用git log命令查看,确认之前那些commit已经合并为一个了

在这里插入图片描述

最后我们再将这个新commit强制push到远程仓库(普通push可能push不上去)

git push origin master --force

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

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

相关文章

2024年山西省安全员C证证模拟考试题库及山西省安全员C证理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年山西省安全员C证证模拟考试题库及山西省安全员C证理论考试试题是由安全生产模拟考试一点通提供&#xff0c;山西省安全员C证证模拟考试题库是根据山西省安全员C证最新版教材&#xff0c;山西省安全员C证大纲整理…

NX二次开发中如何从对象选择控件中获得选中面的TAG值

一、概述 在NX二次开发中所有的对象操作都是通过对对象的TAG值进行操作控制&#xff0c;如何结合BlockUI控件&#xff0c;得到对象的TAG值是十分重要的一步。今天就遇到了这个问题&#xff0c;其实不是不会&#xff0c;而是思维习惯&#xff0c;直接利用对象选择器->Tag()&a…

杨中科 ASP.NETCore Rest

什么是Rest RPC 1、Web API两种风格: 面向过程(RPC) 、面向REST (REST) 2、RPC:“控制器/操作方法“的形式把服务器端的代码当成方法去调用。把HTTP当成传输数据的通道&#xff0c;不关心HTTP谓词。通过QueryString请求报文体给服务器传递数据。状态码。比如/Persons/GetAll…

[Vulnhub靶机] DriftingBlues: 3

[Vulnhub靶机] DriftingBlues: 3靶机渗透思路及方法&#xff08;个人分享&#xff09; 靶机下载地址&#xff1a; https://download.vulnhub.com/driftingblues/driftingblues3.ova 靶机地址&#xff1a;192.168.67.19 攻击机地址&#xff1a;192.168.67.3 一、信息收集 1.…

离线Vscode 安装完成后 添加到右键菜单

复制下面代码&#xff0c;修改文件后缀名为&#xff1a;reg Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\VSCode] "Open with Code" "Icon""D:\\_Porgram_IT\\VsCode\\Code.exe"[HKEY_CLASSES_ROOT\*\shell\VSCode\comman…

GB∕T 33171-2016 城市交通运行状况评价规范

免登陆免积分下载地址 标准号&#xff1a;GB/T 33171-2016 中文标准名称&#xff1a;城市交通运行状况评价规范 英文标准名称&#xff1a;Specification for urban traffic performance evaluation 中国标准分类号&#xff08;CCS&#xff09;R85 国际标准分类号&#xff08;…

告别复杂排版:Markdown语法指南

导语&#xff1a;Markdown作为一种轻量级的标记语言&#xff0c;以其简洁、易学的语法和强大的兼容性赢得了广泛的应用。本文将为您详细介绍Markdown的起源、基本语法及其在写作、博客、项目管理等场景的应用&#xff0c;带您领略这一简洁高效的文本编写工具的无穷魅力。 Mark…

打工人的2.0时代,只需要一副AR眼镜!

在数字化时代&#xff0c;工业行业中的生产效率如何得到提升&#xff1f;工业AR眼镜或许是一个不错的选择。不过工业AR眼镜真的可以协助员工处理工作中所遇到的各种问题吗&#xff1f;我们以制造业、医疗行业、船舶业的不同从业者为例&#xff1a; 假如你是一名制造业从业者&am…

Linux操作系统——进程控制(一) 进程创建和进程终止

进程创建 fork函数 在linux中fork函数时非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程。 #include <unistd.h> pid_t fork(void); 返回值&#xff1a;自进程中返回0&#xff0c;父进程返回子进程id&#xff…

数据分析-25-电商用户行为可视化分析

文章目录 0. 数据代码获取1. 项目介绍1.1 分析背景1.2 分析目的1.3 分析思路 2. 数据清洗2.1 加载必要的库2.2 读取数据2.3 统计缺失值2.4 处理数据a. 删除重复值b. 转换时间格式c. 提取日期和时间d. 转换数据类型 3. 分析内容3.1 用户活跃规律a. 日均pv与uvb. 日新增pv、uv趋势…

使用echarts制作柱状图并且下方带表格

实现效果: 调试地址: Examples - Apache ECharts 源码: option { title: { left: center, top: 0, text: 2022-05月 制造产量 达成情况(单位: 吨) (图1)\n\n集团目标产量: 106,675吨 集团实际产量: 2,636吨, textStyle:{ fontSize:20, colo…

React 入门 - 01

本章内容 目录 1. 简介1.1 初始 React1.2 React 相关技术点1.3 React.js vs Vue.js 2. React 开发环境准备2.1 关于脚手架工具2.2 create-react-app 构建一个 React 项目工程 1. 简介 1.1 初始 React React JS 是 Facebook 在 2013年5月开源的一款前端框架&#xff0c;其带来…

【UML建模】部署图(Deployment Diagram)

1.概述 部署图是一种结构图&#xff0c;用于描述软件系统在不同计算机硬件或设备上的部署和配置情况&#xff0c;以图形化的方式展示系统中组件、节点和连接之间的物理部署关系。 通过部署图&#xff0c;可以清晰地了解系统的物理结构和部署方式&#xff0c;包括系统组件和节…

小程序购物商城搭建开发分析

小程序商城作为现代商业模式的重要组成部分&#xff0c;具有巨大的发展潜力和商业价值。通过搭建一个功能完善、用户友好的小程序商城&#xff0c;您将能够提供便捷的购物体验&#xff0c;吸引更多的用户并实现商业增长。在进行小程序商城开发搭建之前&#xff0c;我们需要对项…

期末成绩这样发 老师省心 家长舒心

从很久以前开始就不能公布学生的分数了&#xff0c;很多学校都是只公布等级或者是大概的范围&#xff0c;那么如何合理告知家长成绩呢&#xff1f; 在家长群内发布公告&#xff0c;告知考试成绩已经出炉&#xff0c;如果家长需要了解具体分数&#xff0c;可以私信联系你。这样既…

网络割接为什么经常是半夜进行?

你们好&#xff0c;我的网工朋友。 假设你最近遇到了一个客户&#xff0c;客户有个新的园区刚刚建成&#xff0c;园区内包括建筑物若干&#xff0c;地理覆盖面也较广&#xff0c;园区建成后&#xff0c;肯定是需要一个专用网络的&#xff0c;用于承载公司的业务流量。 这时候&…

C语言编译器(C语言编程软件)完全攻略(第五部分:VS2015使用教程(使用VS2015编写C语言程序))

介绍常用C语言编译器的安装、配置和使用。 五、VS2015使用教程&#xff08;使用VS2015编写C语言程序&#xff09; 前面我们给出了一段完整的C语言代码&#xff0c;就是在显示器上输出“C语言中文网”&#xff0c;如下所示&#xff1a; #include <stdio.h> int main() {…

网页爬虫在数据分析中的作用,代理IP知识科普

在当今信息爆炸的时代&#xff0c;数据分析成为洞察信息和制定决策的不可或缺的工具。而网页爬虫&#xff0c;作为数据收集的得力助手&#xff0c;在数据分析中扮演着举足轻重的角色。今天&#xff0c;我们将一同探讨网页爬虫在数据分析中的作用。 1. 数据收集的先锋 网页爬虫…

【AWS系列】巧用 G5g 畅游Android流媒体游戏

序言 Amazon EC2 G5g 实例由 AWS Graviton2 处理器提供支持&#xff0c;并配备 NVIDIA T4G Tensor Core GPU&#xff0c;可为 Android 游戏流媒体等图形工作负载提供 Amazon EC2 中最佳的性价比。它们是第一个具有 GPU 加速功能的基于 Arm 的实例。 借助 G5g 实例&#xff0c;游…

OAI openair3代码结构整理

openair3代码框架结构 OAI&#xff08;OpenAirInterface&#xff09;是一个开源的5G网络软件平台&#xff0c;用于研究和开发5G网络技术。OpenAir3是OAI项目中的一个子项目&#xff0c;专注于5G核心网络的功能实现。 一、OpenAir3的代码主要包括以下几个部分&#xff1a; NAS…