git rebase合并多个commit记录

这篇具有很好参考价值的文章主要介绍了git rebase合并多个commit记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在做一个需求的时候,会出现多次提交记录,如下:

15595@С̫□□ MINGW64 /d/project/ps-webpage (myj_beifen)
$ git log --pretty=format:'%h: %s'
03d1e8bc6: 订单修改
578639f96: 订单详情
74f2bc950: 订单详情
7d22e5fcc: 订单详情
03cacded5: [feat][1003997]:订单详情

其中,发现中间有三次提交的记录一致,是可以合并成一次commit的

下面开始合并:
1.找到要合并的commit
命令

git rebase -i  [startpoint]  [endpoint]

其中 -i 的意思是–interact,即弹出交互式的界面让用户编辑完成合并操作

[startpoint] [endpoint]是前开后闭的区间
[startpoint]是指需要合并的commit的前一个commit,在上面的例子中。[startpoint]就是03cacded5: [feat][1003997]:订单详情
[endpoint]一般是省略不写的,默认从起始的commit一直到最后一个commit,但是如果写了[endpoint],那么[endpoint]后面的commit就全都不要了,所以要慎用!

git rebase -i 03cacded5

2.进入interact交互页面
执行git rebase -i 03cacded5后,终端会进入交互页面,如下:
git rebase合并多个commit记录
上面红框里的,使我们筛选出来要合并的commit,是按时间顺序依次往下排序的,和git log展示的顺序是相反的
pick对应了下面红框里的commands展示第一个命令p,表示使用commit

3.使用s命令,合并commit
先按键盘 i 键,进入操作模式,把第二个和第三个commit的pick都改成s
改完之后,按 esc 键退出操作模式
然后按 :wq保存操作并退出
git rebase合并多个commit记录
注意:如果这里将第一个pick也改成s,则会报错
git rebase合并多个commit记录
git rebase合并多个commit记录
其中第一个s就已经给提示了,他是红色的,为什么会失败呢,是因为squash也就是s的作用是把commit合并到上一个提交,所以需要保证第一个提交是pick,出现这种情况的话,就执行

git rebase --abort

重来一次,这样最稳妥。
点击了解,git rebase --abort

4.修改commit记录
如果第三步成功后,接下来会弹出下面这个页面,分别展示了三个commit的提交信息
git rebase合并多个commit记录
我们只需要把第二条和第三条的信息注释掉即可,即按i 键,在第二个和第三个订单详情前面加#号,然后按 esc,最后:wq保存即可
git rebase合并多个commit记录
5.查看最新合并情况
执行 git log --pretty=format:‘%h: %s’,发现之前的三次commit合并成了一次commit,成功!
git rebase合并多个commit记录
扩展:文章来源地址https://www.toymoban.com/news/detail-469563.html

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

到了这里,关于git rebase合并多个commit记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用git rebase合并多次commit

    可以对某一段线性提交历史进行编辑、删除、复制、粘贴;因此,合理使用rebase命令可以使我们的提交历史干净、简洁! 但是需要注意的是: 不要通过rebase对任何已经提交到公共仓库中的commit进行修改(你自己一个人玩的分支除外) 基本格式如下 其中-i的意思是–interacti

    2024年02月09日
    浏览(30)
  • git :合并某个分支上某次commit记录到另外一个分支

    需要将A分支的某次提交记录 ,合并到B分支 1)切回到 A分支 找到提交的commit id 可以使用git log 命令 或者 右键上次提交的记录 copy reversion number         git checkout A git log 2)  切回到 B分支  使用 git cherry-pick  A的 commitID ,回车 3)最后git status /git push 如果遇到问题,可以使

    2024年02月16日
    浏览(29)
  • git rebase 合并多个提交

    开发过程中,本地通常会有无数次 commit ,可以合并相同功能的多个 commit,以保持历史的简洁。 命令使用 说明: -i(–interactive):弹出交互式的界面进行编辑合并 [commitid]:要合并多个版本之前的版本号,注意:[commitid] 本身不参与合并 例如,如下例子中你想合并前 5 个

    2024年02月07日
    浏览(21)
  • 【git】多个git commit合并

    提交MR之前存在多个commit信息,需要合并为一个。 比如 存在如下多个commit信息。 第二个方法主要通过rebase方法重置 参考: https://blog.csdn.net/Spade_/article/details/108698036

    2024年02月05日
    浏览(21)
  • 【git 使用】使用 git rebase -i 修改任意的提交信息/合并多个提交

    修改最近一次的提交信息的方法有很多,可以参考这篇文章,但是对于之前的提交信息进行修改只能使用 rebase。 假设我们想修改下面这个提交信息,想把【登录】改成【退出登录】步骤如下 运行 git rebase -i head~3 打开了一个文本编辑器 -i  【interactive】参数表示进行交互式

    2024年02月21日
    浏览(21)
  • git如何合并多个commit

    1. git rebase -i HEAD~n n:表示要合并的commit个数 例如:git rebase -i HEAD~6,得到如下界面 2. 将要合并的提交pick改为s(squash),将下面5条commit压缩到第一条 3. 修改完毕后,按esc退出编辑,按:q放弃保存并退出,按:wq保存并退出,得到如下界面 如果遇到如下情况,选择直接编辑即可,

    2024年02月14日
    浏览(16)
  • git rebase (合并代码和整理提交记录)图文详解

    建议在看这篇文章之前一定要看完:git reset 命令详解 git revert命令详解。 看完上面的文章后,在rebase操作(成功/失误)后还可以进行回退。不至于咱们再去费劲创建那些提交记录。 git rebase 有两种作用 合并代码 整理提交记录 可以看到有两个分支,2023的分支是在master的基础

    2024年02月09日
    浏览(25)
  • git 合并多次提交记录(commit)

    在开发过程中,对于一个完整的功能可能会先后进行多次提交。这种及提交方式不利于与代码走查时或者后期回顾功能点影响范围。为此,应该将多次提交合并为一次提交。 例如当前提交如下: 若我想合并前3次提交即从91bfbb8f599fa0129f28f9c4fd85e9feeca335be到7dbba7b7b46aa47bb57d109cd6

    2024年02月05日
    浏览(29)
  • git——合并分支commit记录 squash提交

         在公司和别人协同合作时,作为开发需要向架构或者负责人提交mr以合并代码,为了提高review效率,有些负责人会要求一个mr仅保留一条commit记录方便代码比对review的观看,但是开发常常是很多需求和bug混合着写,不可能每个分支都暂存一下去其他分支查看吧,因此总会

    2024年02月14日
    浏览(28)
  • 如何将git的多个commit合成一个

    当我们使用 Git 进行版本控制时,经常会遇到需要合并多个连续的 commit 的情况。Git 提供了 git rebase 命令来处理这种情况。本篇博客将介绍 Git Rebase 的基本概念和用法,以及它如何帮助我们将多个 commit 合并成一个。 作用 将一个分支的提交应用到另一个分支上。 重写提交历史

    2024年02月04日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包