Git:合并多个commit 的高级技巧

前言

在我们的日常项目开发中,git commit -m 无疑是使用最频繁的指令,这也造成了大量的commit 在我们的分支上。这样常常会带来分支过长、版本过多的问题。

正文

想要解决这个问题,我们通常会对commit 进行合并。

当我们发现两个commit 或多个commit 存在很强的关联性、并且几个commit 加起来也可以成为一个完整的描述的时候,就可以对这些commit 进行合并。

实操

先用git log 查看一下历史。

image.png

比如这里有4 条commit 记录,我们想把前两条合并。

我们应该复制第三条commit 的id(从上至下),然后使用命令git rebase -i id(44c29…)

这次就会进入编辑commit 界面

image.png

上方是选中的两次commit ,下方是各种操作的指令,按i 进行编辑模式。
这里我们需要将红色区域的第二个pick 改为 s,意为向上保存

image.png

按下 ESC 键退出编辑模式,按下 :wq 保存退出,我们的commit 就算合并好了,进入预览界面。此时再次保存退出就好了。

image.png

到这步就将两次commit 合并成功了!

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/7634

(0)
郭靖的头像郭靖
上一篇 2023年3月15日 下午4:21
下一篇 2023年3月16日 下午4:41

相关推荐

  • Tcpdump 命令实际示例,Linux 下功能最强大的网络抓包工具

    tcpdump是最基本、最强大的命令行网络数据包嗅探工具。我们用它来分析服务器的网络数据包,捕获或过滤在特定网络接口上通过网络传输和接收的TCP/IP数据包。 它几乎适用于所有基于Linux/Unix操作系统的服务器。您还可以将捕获的数据包保存在文件中,以便以后使用tcpdump工具进行分析。它将文件保存为pcap格式,可通过tcpdump命令或基于GUI的…

    2023年8月7日
    1.2K00
  • Linux下安装PHP

    安装准备 安装PHP所需的系统库,可以扩展php更多功能 手动安装libiconv-devel(编译三部曲) 默认yum源中缺少libiconv-devel软件包,需要编译安装,用于php的编码转换 下载安装 国内镜像地址:http://mirrors.sohu.com/php/ 下载编译文件 编译安装 配置编译脚本 看到如下提示,说明编译成功了 进行编译安…

    2022年6月25日
    1.2K00
  • 使用netcat检测UDP端口是否开启

    一般我们使用tcping或者telnet检测目标IP的的TCP端口是否开放。但这两种工具对UDP端口无效。 Netcat是什么 NC(netcat)被称为网络工具中的瑞士军刀,体积小巧,但功能强大。 Nc主要功能 Nc可以在两台设备上面相互交互,即侦听模式/传输模式 可以使用的参数 其实常用的就几个参数-n,-v,-l,-p,-q

    2022年12月6日
    1.1K00
  • 如何处理CentOS Failed to load SELinux policy

    CentOS 7在启动时,卡在进度条界面一直进不去系统,如下图所示: 我们可以通过按键盘的左右方向键,可以看到提示“Failed to load SELinux policy.”,这就是造成系统一直卡住无法正常启动的原因。 原因 是因为没有正确修改系统的selinux的配置,导致系统在启动时报selinux的错误 解决方案 第一步:先重启CentOS7操作系…

    2022年6月15日
    1.5K00
  • Centos7.6安装MySQL(超详细)

    1、查看是否已经安装Mysql rpm -qa | grep mysql 我已经安装过了 如果你查看出来有东西,可以使用下面命令将其删除 rpm -e 文件名 如果提示warning: waiting for transaction lock on /var/lib/rpm/.rpm.lock,则需要执行 2、下载官方Mysql包 wget -i -c ht…

    2022年6月9日
    1.6K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信