git 多个commit合并成一个commit
<p style="text-indent: 2em;">在使用git做版本管理器的时候,有时候需要将多个commit合并成一个commit,因此这里记录下具体的操作方法,便于查阅。</p><p style="text-indent: 0em;"> 我测试用的例子:<a class="btn btn-success" href="https://pan.baidu.com/s/1u4Kiy_KoOzx9yf63GOFBIw" target="_blank">点此下载</a>,密钥:<span style="color: rgb(255, 0, 0);">dfmq</span>。<br/></p><p style="text-indent: 2em;">下面的例子,<span style="color: rgb(255, 0, 0);">将msg B,msg C,msg D这3个commit合并成1个commit</span>,具体步骤如下:<br/></p><p class="artical_littlestyle1">1、查看当前的提交信息</p><p style="text-indent: 2em;">执行命令:<span style="color: rgb(0, 112, 192);">git log</span>,可以查看当前的一些提交信息,这些提交按照时间先后顺序为:msg A,msg B,msg C,msg D。</p><p style="text-align:center"><img src="/uploads/AilsonJack/2020.02.29/1582945815533301.png" onclick="preview_image('/uploads/AilsonJack/2020.02.29/1582945815533301.png')"/></p><p class="artical_littlestyle2">2、合并多个commit</p><p style="text-indent: 2em;">执行命令:<span style="color: rgb(0, 112, 192);">git rebase -i commit_id</span>,这里的commit_id是待合并的多个commit之前的那个commit ID,这里也就是msg A的commit ID。<br/></p><p style="text-indent: 2em;">在我这里也就是执行命令:<span style="color: rgb(0, 112, 192);">git rebase -i d1089921b2714211d1b1652cf0864e2c3f7101a4</span>,执行完命令后就进入到vi的编辑模式:</p><p style="text-align:center"><img src="/uploads/AilsonJack/2020.02.29/1582945815234691.png" onclick="preview_image('/uploads/AilsonJack/2020.02.29/1582945815234691.png')"/></p><p style="text-align:center"><img src="/uploads/AilsonJack/2020.02.29/1582945815557151.png" onclick="preview_image('/uploads/AilsonJack/2020.02.29/1582945815557151.png')"/></p><p style="text-indent: 2em;">上图中,pick表示使用当前的commit,squash表示这个commit会被合并到前一个commit。</p><p style="text-indent: 2em;">我们这里需要将msg C,msg D合并到msg B中,因为msg B是最靠近msg A的,因此这里选择将msg C,msg D合并到msg B中。</p><p style="text-indent: 2em;">在键盘上敲i键进入insert模式,然后将msg C,msg D前面的pick修改成squash:</p><p style="text-align:center"><img src="/uploads/AilsonJack/2020.02.29/1582945815271988.png" onclick="preview_image('/uploads/AilsonJack/2020.02.29/1582945815271988.png')"/></p><p style="text-indent: 2em;">修改完成后,按esc键,冒号,输入wq进行保存。之后会继续跳转到commit message 的编辑界面:</p><p style="text-align:center"><img src="/uploads/AilsonJack/2020.02.29/1582945815110379.png" onclick="preview_image('/uploads/AilsonJack/2020.02.29/1582945815110379.png')"/></p><p style="text-indent: 2em;">将上图中画线的内容删掉或者注释,然后写一个新的commit信息作为这3个commit的log信息,我这里的新的信息为:msg B, msg C, msg D,如下图所示:</p><p style="text-align:center"><img src="/uploads/AilsonJack/2020.02.29/1582945818878796.png" onclick="preview_image('/uploads/AilsonJack/2020.02.29/1582945818878796.png')"/></p><p style="text-indent: 2em;">然后保存退出,就会跳转到最初的命令界面:</p><p style="text-align:center"><img src="/uploads/AilsonJack/2020.02.29/1582945820935086.png" onclick="preview_image('/uploads/AilsonJack/2020.02.29/1582945820935086.png')"/></p><p style="text-indent: 2em;">Successfully表示操作成功。</p><p class="artical_littlestyle3">3、查看新的commit信息</p><p style="text-indent: 2em;">执行命令:<span style="color: rgb(0, 112, 192);">git log</span>,查看当前的commit信息:</p><p style="text-align:center"><img src="/uploads/AilsonJack/2020.02.29/1582945840983177.png" onclick="preview_image('/uploads/AilsonJack/2020.02.29/1582945840983177.png')"/></p><p style="text-indent: 2em;">从上图中,可以看到,我这里已经将msg B,msg C,msg D这3个commit合并成1个新的commit。</p><p style="text-indent: 2em;">如果觉得文章写的不错,对你有帮助,欢迎点赞,关注博主哟!</p>
暂无评论,要不要来个沙发
发表评论
JLink V9掉固件修复(灯不亮) 3Zephyr笔记2 - 在STM32F429上运行HelloWorld 2计算NandFlash要传入的行地址和列地址 1Linux MMC子系统 - 6.eMMC 5.1工作模式-设备识别模式 0Linux MMC子系统 - 5.eMMC 5.1工作模式-引导模式 0Linux MMC子系统 - 4.eMMC 5.1常用命令说明(2) 0
标签云
Linux嵌入式实用技巧ARM内核学习问题集合CC++编程语言阅读笔记汇编Linux内核完全注释Windows驱动开发计算机基础ARM11ARMv7-ASTM32IDESublimeLinux内核学习eMMCMMC子系统Ubuntu操作系统OfficeVMWareAPUEgccRTOS中断漫游世界随笔感悟开发工具软件应用编程VsCodearmccarmclang编译器ZephyrSPIJLink网卡驱动安装各种芯片库函数NFSμCOS内核sambaFlashUnix命令与脚本输入法Linux内核设计与实现gitRIFFWAVJATGFTPar8161安装centos有线上网μCGUI字库工程建立右键菜单网络文件系统Firefox百度NTFS文件系统CodeBlocksCentOS数据结构算法PhotoShop51KeilQTUltraEditscanfglibc宏定义UIDGID优先级娱乐天地SourceInsight磁盘扇区总线I2CPDFBComparePythonI2SFPUMakefileSWDCPUARP软件推荐FileZilla