Git commitId 压缩(推送远程和未推送远程)
Posted YX_blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git commitId 压缩(推送远程和未推送远程)相关的知识,希望对你有一定的参考价值。
背景:
代码提交后,基于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
以上是关于Git commitId 压缩(推送远程和未推送远程)的主要内容,如果未能解决你的问题,请参考以下文章
Interactively rebase from here(Idea Git CommitId压缩)