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

原创笔记:
https://note.youdao.com/ynoteshare/index.html?id=31a5130b93df5552553d4cf2e3fb7cc8&type=note&_time=1669901326586

以上是关于Git commitId 压缩(推送远程和未推送远程)的主要内容,如果未能解决你的问题,请参考以下文章

Interactively rebase from here(Idea Git CommitId压缩)

Interactively rebase from here(Idea Git CommitId压缩)

git第六节---git 远程仓库

git master 回滚代码

2022-03-02 如何修改git 已经推送的log日志

Git 推送到远程仓库