背景:
代码提交后,基于review 风格,和代码整洁度,以及后续业务划分,需要对commitId进行压缩操作
核心思想
基于rebase命令进行合并操作
场景一 commitId提交本地且推送远程
1、准备数据
准备所有已经提交且推送远程的commitId
当前分支UAT
2、创建新分支且切换到新分支
我们需要将这三次进行一个合并
由于推送远程之后进行commitId合并 会稍微复杂些。需要引入新分支,新分支的起始阶段就是需要合并的commitId的那边,我们这里以【第一次提交test】之前的commitId 拉取分支
3、执行rebase命令进行commitId合并
以下弹框可以 工具栏 > git > rebase 按钮选项
执行之后可以看到我们远程分支uat 上的commitId 已经拉取到本地了
4、执行合并操作
执行如图所示
4.1 选择起始点进行commit 合并
从哪一次开始进行合并鼠标移动并右键点击
4.2 重新编辑提交message
完成之后点击任意出,然后点击下方 [ start rebasing]
3、查看git树形结构
4、推送远程查看远程仓库
可以看到结果实现了压缩操作
场景二- commitId提交本地未推送远程
本地解决方式相对于之前会简单些
1、准备提交commitId
新建分支uat_commitId_no_remote
2、执行合并操作
选择从这开始进行合并
3、选择commitId 进行编辑message操作
4、查看git操作树结构
5、推送远程之后就看不到中间提交的CommitId
ps:在进行编辑时,有一些选项
pick:保留该commit
reword:保留该commit,但我需要修改该commit的注释
edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)
squash:将该commit和前一个commit合并
fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息
exec:执行shell命令
drop:我要丢弃该commit
原创笔记:
https://note.youdao.com/ynoteshare/index.html?id=31a5130b93df5552553d4cf2e3fb7cc8&type=note&_time=1669901326586