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

相关推荐

  • 成功解决:ubuntu下ifconfig不显示网卡信息

    方法一(临时) 或者 需要注意的是,以上两种方式只是临时性的,非永久性,下次重启还是会出现ifconfig没有网卡的现象 dhclient(DHCP client)为动态主机配置协议客户端。DHCP 客户端 dhclient 提供了一种使用动态主机配置协议 和 BOOTP 协议配置一个或多个网络接口的方法。如果这些协议失败,则通过静态分配地址来配置。 方法二…

    2023年6月21日
    3.2K00
  • ESXI6.7物理机安装之网卡驱动封装

    原因: 下载好ESXI6.7.iso镜像,写入U盘后,提示No Network Adapters,找不到网卡驱动。 解决办法:         需要重新封装ESXI,将对应的网卡驱动嵌入进来 我这里先提供一个封装好的,瑞昱r8168网卡定制版ESXI6.7下载:https://pan.baidu.c…

    2023年1月20日
    1.6K00
  • Ubuntu系统如何配置镜像源

    我们在使用Linux系统时,一般来说都是需要配置一个源地址才能直接使用下载的命令来安装软件的,若你购买的是云服务器,正常来讲是服务器厂商配置好了源的,但是也不缺乏有少量的机器源会出现问题,导致安装软件不成功,如下图所示,那么我们就需要手动去配置了 第一步:替换原有的源 第二步:安装证书 如果安装失败,重新安装即可

    2022年6月14日
    1.7K00
  • Redis删除特定前缀key的优雅实现

    Redis中没有批量删除特定前缀key的指令,但我们往往需要根据前缀来删除,那么究竟该怎么做呢?可能你一通搜索后会得到下边的答案 直接在linux下通过redis的keys命令匹配到所有的key,然后调用系统命令xargs来删除,看似非常完美,实则风险巨大 因为Redis的单线程服务模式,命令keys会阻塞正常的业务请求,如果你一次keys匹配的数量过多或者…

    2023年1月17日
    1.5K00
  • linux中为cp和mv命令添加进度条

    安装高级复制补丁以在 Linux 中向 cp 和 mv 命令添加进度条 cp 和 mv 命令是GNU coreutils. 所以你需要GNU coreutils从这里下载最新的。 现在两个新的补丁的二进制文件即cp与mv将在中创建coreutils-9.0/src的文件夹。只需将它们复制到你的 $PATH 中,如下所示: 该cpg和mvg命令有现在进度条的功…

    2023年6月16日
    1.2K00

发表回复

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

在线咨询: QQ交谈

邮件:712342017@qq.com

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

关注微信