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合并多次提交内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • git如何合并某个分支的某次提交(cherry-pick)

    git如何合并某个分支的某次提交(cherry-pick)

    这篇文章主要介绍了git如何合并某个分支的某次提交(cherry-pick)问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 使用idea 去除 html 代码前的行号和空行的方法详解

    使用idea 去除 html 代码前的行号和空行的方法详解

    这篇文章主要介绍了使用idea 去除 html 代码前的行号和空行,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Git中smart Checkout与force checkout的区别及说明

    Git中smart Checkout与force checkout的区别及说明

    这篇文章主要介绍了Git中smart Checkout与force checkout的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 如何解决vscode中ESLint和prettier冲突问题

    如何解决vscode中ESLint和prettier冲突问题

    这篇文章主要给大家介绍了关于如何解决vscode中ESLint和prettier冲突问题的相关资料,ESLint和Prettier之间可能会发生冲突,因为它们都是用于代码规范化的工具,但它们的规则和格式化方式可能不同,需要的朋友可以参考下
    2023-11-11
  • Git别名的使用

    Git别名的使用

    这篇文章主要介绍了Git别名的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 如何使用Idea进行合并代码分支

    如何使用Idea进行合并代码分支

    这篇文章主要介绍了如何使用Idea进行合并代码分支,在平时的开发中大多是协作开发的,代码统一放在一起,那么需要代码合并时该怎么操作,需要的朋友可以参考下
    2023-03-03
  • IDEA升级后Git拉取和推送的标签消失的解决方法

    IDEA升级后Git拉取和推送的标签消失的解决方法

    本文主要介绍了IDEA升级后Git拉取和推送的标签消失的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Win10 BitLocker加密解密解决方案

    Win10 BitLocker加密解密解决方案

    这篇文章主要介绍了Win10 BitLocker加密解密解决方案,文中通过图文讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2007-02-02
  • Git使用小技巧之回滚与撤销详解

    Git使用小技巧之回滚与撤销详解

    这篇文章主要给大家介绍了关于Git使用小技巧之回滚与撤销的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Git具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • 使用301永久重定向和302临时重定向作用区别详解

    使用301永久重定向和302临时重定向作用区别详解

    这篇文章主要为大家介绍了301永久重定向和302临时重定向作用详解,
    有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08

最新评论