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

相关推荐

  • 使用jenkins 打包前端私服代码失败的问题

    问题现象: jinekins 流水线在yarn 编译前端私服依赖包的时候,报错,提示 Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). 【emm。。。之前的构建都是好好的,也不知道前端大哥啥时候去封装的前端代码,而且奇怪的是没有放在公共库里。。。。】 Pipeline 流…

    2023年1月31日
    98900
  • 一个由MySQL安全插件引发的生产问题

    一、背景 生产环境下遇到一个问题,有数据库节点的连接数略高,触发了连接数告警。登录上查看后,发现实际业务压力不大。查看processlist发现有大量状态为“Waiting in connection_control plugin”的等待连接。 mysql> select ID,HOST,DB,COMMAND,TIME,STATE,INFO from …

    2023年3月6日
    1.1K00
  • 关于磁盘IO的那些事

    关于磁盘IO的那些事 一、背景 需要把生产上一份clickhouse的备份数据到测试环境上,心想也就59G 的大小,应该很快吧,殊不知压缩就搞了3个多小时,于是好奇看下磁盘IO的一些参数,分享给大家学习参考 在分析存储性能之前,需要先了解存储性能定义的三个核心指标:IOPS、Throughput、await 指标 说明 IOPS 每秒进行的IO操作次数 Th…

    2023年4月11日
    1.1K00
  • 云服务器上的目录定时同步到Github

    具体操作与脚本 第一 在Github上创建私有仓库这一步相信大家都知道怎么操作 第二 在服务器拉取Github仓库并把.git目录复制到需要同步的目录下假设服务器需要同步的目录为:/usr/share/nginx/html/imgs 第三 编写定时同步脚本具体脚本如下,如脚本位置: /root/script/sync_to_github.sh 第四 通过Li…

    2023年5月15日
    1.3K00
  • Linux 修改系统时间的两种方式

    我们一般使用“date -s”命令来修改系统时间。比如将系统时间设定成2010年4月5日的命令如下。 [root@rhel ~]# date -s 20100405 Mon Apr  5 00:00:00 CST 2010 将系统时间设定成14点31分0秒的命令如下 [root@rhel ~]# date -s 14:31:00 Mon Apr&n…

    2023年7月27日
    1.2K00

发表回复

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

在线咨询: QQ交谈

邮件:712342017@qq.com

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

关注微信