栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Git rebase操作,合并多条commit记录

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Git rebase操作,合并多条commit记录

今天工作中使用rebase合并了多条commit记录,现将操作方法记录下,方便大家学习。
我们在一个分支开发的时候,会有很多次提交,当我们把自己的分支提交到master时候提交记录太多不方便后期维护,这个时候需要rebase一下,把多次commit记录合并成一条记录。

确定rebase的基线

第一步需要我们确定基于哪一条基线(提交记录)来进行rebase
使用git log 命令查看提交记录,上下键滚动、Q键退出。找到你第一次的提交记录。

你第一次的提交记录下面那条记录,作为本次合并的base记录(基线)。这点容易理解,就像造房子需要在地基之上建,第一次提交记录的再之前一次记录就是本次“地基”。

基于基线进行rebase

输入以下命令开始此次记录合并,commit id就是选取的base记录的id:

git rebase -i 4560d5dd728c627291201eb8c04041628de7d5e4
合并多个commit id

使用git rebase -i命令后,会进入Git内置的vim界面:

pick c4eed30b 需求开发
pick c4eed30b 需求开发
pick c4eed30b 需求开发
pick c4eed30b 需求开发

commit记录都被标记为“pick”,意思是这四次提交都会被采用,并显示在Git的提交记录中。提交涉及的代码改动都是需要的,但是只需要一条提交记录,因此先按“i”键进入INSERT模式,将后三次commit id前面的“pick”字样改为“s”,只有第一次的commit id前面是“pick”,然后按ESC键退出编辑模式,并输入:wq进行保存。
注意如果是在Intellij IDEA的Terminal框里编辑rebase信息,那么在按ESC之后光标会回到代码区,此时输入的“:wq”会写到代码里,这种情况下,可以鼠标左键点击Terminal框,同时按ESC键退出编辑模式。或者按ESC键之后,要重新用鼠标点一下Terminal框里的区域,重新把光标定位回Terminal框中。

注释掉多余的记录描述

在上一个pick与squash编辑界面用:wq保存后,会跳出最后的commit描述编辑界面

这里按“i”键进入INSERT模式后,可以把不需要的commit描述用“#”号注释掉,只留下第一次提交时那条描述,然后用ESC键退出编辑模式,再输入:wq进行保存。

远程强制提交

在经历上面两个rebase编辑步骤后,本地Git的commit记录已经成功合并,需要将合并好的单条记录覆盖掉远程GitLab上的四条记录,在命令行输入以下命令即可:

 git push -f origin 分支名

如果本地分支与远程分支关联过,那么其中“origin 分支名”部分可以省略。提交后可以看到GitLab上关于该功能点只有一条commit记录了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1027524.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号