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

相关推荐

  • docker image tag为什么出现none

    背景 公司项目是基于容器化架构设计,具体业务也拆成了多个微服务及对应了多个docker image镜像。研发环境中会频繁进行升级image镜像,导致出现很多image为 <none> 命名的镜像,这种也称为悬空镜像。 本篇文章将展示几种现象会导致这种情况发生。下文演示环境,版本信息如下: 现象一 前提条件:在同环境中两个镜像名称:tag都相同,imag…

    2023年10月20日
    1.1K00
  • apache 设置ssl证书

    安装模块 安装mod_ssl和openssl 创建密钥存放的目录 上传证书和密钥到/etc/httpd/ssl目录下 验证证书和密钥的MD5 编辑配置文件 修改ssl.conf文件 打开ssl模块功能 在 /etc/httpd/conf.modules.d 目录下的 00-ssl.conf 配置文件找到 LoadModule ssl_module modul…

    2022年11月29日
    1.2K00
  • nginx使用htpasswd实现站点账密登录

    一:介绍 在Web应用程序的开发中,安全性是一项至关重要的任务。当用户需要访问敏感信息或执行特定操作时,需要使用账号和密码进行身份验证,htpasswd是Apache HTTP服务器下的一款用于HTTP用户basic认证工具,可用来建立和更新存储用户名、密码,同时生产用于 http 基本认证的工具 二:htpasswd安装 三:htpasswd配置密码 该命…

    2024年6月3日
    1.3K00
  • CentOS 添加(永久)静态路由的方法总结

    一、使用 route 命令加入临时路由,重启后将失效 route 命令参数: 二、在 Linux 中添加永久路由的方法 1. 默认网关 (1)写入 ifcfg 文件(推荐) vi /etc/sysconfig/network-scripts/ifcfg-eth0 在配置 ip 地址的时候直接将 GATEWAY 的配置写入 ifcfg 文件。形式:GATEWA…

    2023年9月5日
    1.4K00
  • HBase 详细图文介绍

    一、HBase 定义 Apache HBase™ 是 以 hdfs 为数据存储的 ,一种分布式、可扩展的 NoSQL 数据库。 二、HBase 数据模型 HBase 的设计理念依据 Google 的 BigTable 论文,论文中对于数据模型的首句介绍 。Bigtable 是一个稀疏的 、 分布式的 、 持久的多维排序 map 。之后对于映射的解释如下:该映…

    2023年12月15日
    1.1K00

发表回复

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

在线咨询: QQ交谈

邮件:712342017@qq.com

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

关注微信