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便捷操作合集

    常用的Git便捷操作合集

    虽然现在有很多图形化的 Git 工具,但是命令行依然 yyds。本文记录了工作中很有用的一些 Git 操作,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-09-09
  • 浅谈IDEA Scratch files万能的临时文件功能

    浅谈IDEA Scratch files万能的临时文件功能

    这篇文章主要介绍了浅谈IDEA Scratch files万能的临时文件功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • .yml是什么文件(编写规则)

    .yml是什么文件(编写规则)

    YAML (YAML Aint Markup Language) 是一种标记语言,一种专门用来写配置文件的语言, 可用于如: Java,C/C++, Ruby, Python, Perl, C#, PHP等,本文对.yml文件详细讲解,包括编写规则和yml优点,感兴趣的朋友跟随小编一起看看吧
    2024-01-01
  • vscode中setting.json配置文件配置详解

    vscode中setting.json配置文件配置详解

    这篇文章主要给大家介绍了关于vscode中setting.json配置文件配置的相关资料,VSCode中的setting.json文件用于存储用户自定义的配置设置,文中给出了详细的代码示例,需要的朋友可以参考下
    2023-09-09
  • markdown简介和语法介绍

    markdown简介和语法介绍

    这篇文章主要介绍了markdown简介和语法介绍,本文重点介绍了常用的一些markdown语法,可以做为一个简明版的入门指南,另本文还提供了一个在线学习markdown的简明教程,需要的朋友可以参考下
    2014-07-07
  • 多种编程语言的常用按键和语法

    多种编程语言的常用按键和语法

    就我所知道的语言来说,在键盘上集中分布跨度更大的语音,通常就是我们所指的丑陋的语言(阅读和编写代码都很困难),例如 shell 和 perl。
    2011-10-10
  • 关于IDEA git 只有Commit没有Push的问题

    关于IDEA git 只有Commit没有Push的问题

    这篇文章主要介绍了关于IDEA git 只有Commit没有Push的问题,本文给大家介绍的非常想详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Unity中webgl使用避雷要素指南

    Unity中webgl使用避雷要素指南

    这篇文章主要介绍了Unity中webgl使用过程中会踩过的坑,以及如何解决这些问题,有需要的朋友可以借鉴参考下,希望可以对广大读者朋友能够有所帮助
    2021-09-09
  • 关于IDEA中Git暂存代码的使用

    关于IDEA中Git暂存代码的使用

    本文主要介绍了关于IDEA中Git暂存代码的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Git如何合并多次提交

    Git如何合并多次提交

    这篇文章主要介绍了Git合并多次提交问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05

最新评论