git rebase -i合并多次提交的实现

 更新时间:2020年07月31日 10:29:04   作者:水木竹水  
这篇文章主要介绍了git rebase -i合并多次提交的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

简介

在日常开发中,代码变更比较频繁,有时候想让前几次提交的合并为一次提交,这里可以使用git rebase -i 命令来完成,当然,git rebase命令不仅仅用于合并提交,它还有许多用处,比如可以使用git rebase onto将某一段commit粘贴到另一个分支上等等,这里主要介绍合并提交。

命令介绍

rebase为变基
git rebase -i 命令可以压缩合并多次提交
格式:git rebase -i [startpoint] [endpoint]

其中-i的意思是–interactive,即弹出交互式的界面让用户编辑完成合并操作,[startpoint] [endpoint]则指定了一个编辑区间,如果不指定[endpoint],则该区间的终点默认是当前分支HEAD所指向的commit(注:该区间指定的是一个前开后闭的区间)。

在查看git的log后,可以使用如下命令

// 合并从当前head到15f745b(commit id)
git rebase -i 15f745b
或:
// 合并最近的两次提交
git rebase -i HEAD~2

执行这个命令后会跳到一个vi编辑器

里面的提示有:

  • pick:保留该commit(缩写:p)
  • reword:保留该commit,但我需要修改该commit的注释(缩写:r)
  • edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
  • squash:将该commit和前一个commit合并(缩写:s)
  • fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)
  • exec:执行shell命令(缩写:x)
  • drop:我要丢弃该commit(缩写:d)

实操

这里在终端输入: git rebase -i HEAD~2 这里的 HEAD~2 表示合并最近两次的提交, 如果想合并最近三次的提交修改为: git rebase -i HEAD~3


需要做的是,将第二行的 pick 改为 s, “s” 为 “squash” 的缩写,“squash” 的意思是将这个提交压缩为最后一次提交


保存后弹出这样的

将 This is the commit message #2 下面的内容改成你想提交的概述即可


最后保存退出即可

到此这篇关于git rebase -i合并多次提交的实现的文章就介绍到这了,更多相关git rebase -i合并多次提交内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • VS2019无法启动程序(系统找不到指定文件)解决办法

    VS2019无法启动程序(系统找不到指定文件)解决办法

    这篇文章主要介绍了VS2019无法启动程序(系统找不到指定文件)解决办法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 使用VSCode 创建一个插件

    使用VSCode 创建一个插件

    相信大家对vscode应该都不陌生,VSCode是微软出的一款轻量级代码编辑器,免费而且功能强大,以功能强大、提示友好、不错的性能和颜值俘获了大量开发者的青睐,对JavaScript和NodeJS的支持非常好,自带很多功能,例如代码格式化,代码智能提示补全、Emmet插件等。
    2020-01-01
  • git提交出现commit提醒信息界面怎样退出

    git提交出现commit提醒信息界面怎样退出

    这篇文章主要介绍了git提交出现commit提醒信息界面怎样退出问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • HTTP协议简介_动力节点Java学院整理

    HTTP协议简介_动力节点Java学院整理

    这篇文章主要介绍了HTTP协议简介,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Git基础学习之tag标签操作详解

    Git基础学习之tag标签操作详解

    标签对象(tag object) 非常类似于一个提交对象,它包含一个标签创建者信息、一个日期、一段注释信息,以及一个指针。本文主要介绍了Git标签tag的一些基础操作,需要的可以参考一下
    2022-10-10
  • IM聊天教程之发送图片/视频/语音/表情

    IM聊天教程之发送图片/视频/语音/表情

    朋友在问如何在IM即时通讯中实现发送图片视频语音和表情呢,今天小编通过本文给大家详细介绍下,感兴趣的朋友一起看看吧
    2020-05-05
  • 回车和换行有什么区别?我们平时按下的Enter键是回车还是换行

    回车和换行有什么区别?我们平时按下的Enter键是回车还是换行

    如果用过机械打字机,就知道回车和换行的区别了。换行就是把滚筒卷一格,不改变水平位置。回车就是把水平位置复位,不卷动滚筒
    2011-03-03
  • HTTP请求首部字段及响应首部字段详解

    HTTP请求首部字段及响应首部字段详解

    这篇文章主要介绍了HTTP请求首部字段及响应首部字段,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • git rebase -i合并多次提交的实现

    git rebase -i合并多次提交的实现

    这篇文章主要介绍了git rebase -i合并多次提交的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • zend studio 快捷键收集

    zend studio 快捷键收集

    zend studio 快捷键收集,提高开发效率。
    2009-11-11

最新评论