0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

git多个commit合并成一个commit

嵌入式那些事 来源:嵌入式那些事 2023-05-06 15:49 次阅读

在使用git做版本管理器的时候,有时候需要将多个commit合并成一个commit,因此这里记录下具体的操作方法,便于查阅。

下面的例子,将msg B,msg C,msg D这3个commit合并成1个commit,具体步骤如下:

1、查看当前的提交信息

执行命令:git log,可以查看当前的一些提交信息,这些提交按照时间先后顺序为:msg A,msg B,msg C,msg D。

912636be-ebe1-11ed-90ce-dac502259ad0.png

2019-11-25_165510

2、合并多个commit

执行命令:git rebase -i commit_id,这里的commit_id是待合并的多个commit之前的那个commit ID,这里也就是msg A的commit ID。

在我这里也就是执行命令:git rebase -i d1089921b2714211d1b1652cf0864e2c3f7101a4,执行完命令后就进入到vi的编辑模式:

9147b2f8-ebe1-11ed-90ce-dac502259ad0.png

2019-11-25_173903

9174ccd4-ebe1-11ed-90ce-dac502259ad0.png

2019-11-25_174651

上图中,pick表示使用当前的commit,squash表示这个commit会被合并到前一个commit。

我们这里需要将msg C,msg D合并到msg B中,因为msg B是最靠近msg A的,因此这里选择将msg C,msg D合并到msg B中。

在键盘上敲i键进入insert模式,然后将msg C,msg D前面的pick修改成squash:

9194c692-ebe1-11ed-90ce-dac502259ad0.png

2019-11-25_180541

修改完成后,按esc键,冒号,输入wq进行保存。之后会继续跳转到commit message 的编辑界面:

91b691f0-ebe1-11ed-90ce-dac502259ad0.png

2019-11-25_180906

将上图中画线的内容删掉或者注释,然后写一个新的commit信息作为这3个commit的log信息,我这里的新的信息为:msg B, msg C, msg D,如下图所示:

91ddd6f2-ebe1-11ed-90ce-dac502259ad0.png

2019-11-25_181151

然后保存退出,就会跳转到最初的命令界面:

91f7afbe-ebe1-11ed-90ce-dac502259ad0.png

2019-11-25_181335

Successfully表示操作成功。

3、查看新的commit信息

执行命令:git log,查看当前的commit信息:

9215fd8e-ebe1-11ed-90ce-dac502259ad0.png

2019-11-25_181700

从上图中,可以看到,我这里已经将msg B,msg C,msg D这3个commit合并成1个新的commit。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 管理器
    +关注

    关注

    0

    文章

    238

    浏览量

    18398
  • 命令
    +关注

    关注

    5

    文章

    638

    浏览量

    21893
  • Git
    Git
    +关注

    关注

    0

    文章

    195

    浏览量

    15551

原文标题:git多个commit合并成一个commit

文章出处:【微信号:嵌入式那些事,微信公众号:嵌入式那些事】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何通过labview把三多个html文件合并成文件?

    如何通过labview把三多个html文件合并成文件?
    发表于 11-16 09:48

    git shell 常用命令

    删除本地库developgit checkout -b dev 建立新的本地分支devgit merge origin/dev 将分支dev与当前分支进行合并git checko
    发表于 04-16 15:57

    开发者必备的8 git 小技巧

    个分支上进行了commit和push。当你pull的时候,git会创建commit合并你的
    发表于 07-05 10:30

    Git 常用命令大全

    合并的分支是无法删除的。如果想强制删除分支,可以使用-D选项合并分支:$ git merge [name] ----将名称为[name]
    发表于 10-11 17:23

    git简单使用(

    仓库,以及如何进行分支控制:1.创建文件夹mkdir git-study2.初始化仓库git init3.查看下当前分支git bran
    发表于 02-17 16:18

    Git工程实践()巧用commit message

    摘要: 大家都知道所有的版本控制系统比如svn,git等设计的核心价值之就是为了让代码变更有迹可循,而commit mesage的价值在于让有迹可循的代码对人类更加友好,通常
    发表于 05-03 17:30

    PDF文档合并软件,可以将多个PDF文件合并成总的PDF文件

    PDF文档合并软件,可以将多个PDF文件合并成总的PDF文件
    发表于 09-25 23:35

    开发人员在使用Git时几种常见错误

    如果你想把分支的修改合并到当前分支,你可以用git rebase。它和git merge的区别是merge有
    的头像 发表于 11-08 09:17 2694次阅读

    教你20分钟搞懂Git

    在上述代码中,在提交时你需要提供提交的描述,而且你可以通过echo "first commit"提供提交描述。git commit-tree命令会根据元数据以及目录树生成
    的头像 发表于 12-12 09:48 3007次阅读

    45日常用git合代码的经典操作场景

    如果你用 git commit -a 提交了次变化(changes),而你又不确定到底这次提交了哪些内容。你就可以用下面的命令显示当前HEAD上的最近次的提交(
    的头像 发表于 04-13 10:39 853次阅读

    commit-comments自动添加评论系统

    ./oschina_soft/commit-comments.zip
    发表于 05-27 10:51 2次下载
    <b class='flag-5'>commit</b>-comments自动添加评论系统

    45Git经典操作场景

    如果你用 git commit -a 提交了次变化(changes),而你又不确定到底这次提交了哪些内容。你就可以用下面的命令显示当前HEAD上的最近次的提交(
    的头像 发表于 01-06 15:29 502次阅读

    Git是怎样的系统 Git的工作原理

    执行完成了 git commit 命令,究竟做了什么呢? Git 仓库中的提交记录保存的是你的目录下所有文件的快照,就像是把整个目录复制,然后再粘贴样,但比复制粘贴优雅许多!
    发表于 02-22 10:41 264次阅读

    git rebase和git merge的区别

    合并到当前分支 他们的 「原理」 如下: 假设你现在基于远程分支"origin",创建叫"mywork"的分支。   $ git checkout -b mywork origin
    的头像 发表于 07-05 09:54 467次阅读
    <b class='flag-5'>git</b> rebase和<b class='flag-5'>git</b> merge的区别

    45Git经典操作场景,助你臂之力

    如果你用 git commit -a 提交了次变化(changes),而你又不确定到底这次提交了哪些内容。你就可以用下面的命令显示当前HEAD上的最近次的提交(
    的头像 发表于 09-23 11:11 415次阅读