Git 修改push到远程仓库的commit提交对象

背景概述

提交的commit,命名给错了,且这个commit已经被push到远程仓库上了。现在有一个需求,就是更新远程仓库的commit对象,那么我们看看可以如何实现这个需求。

在这里插入图片描述

git commit --amend

解释下git commit --amend命令的作用:修改最新一次提交对象的内容。在我们这次的需求中,就是修改提交对象的提交信息。

那么接着,在Idea的终端面板上,输入如下命令:

在这里插入图片描述
进入提交对象的内部:

在这里插入图片描述
可以看到提交对象的提交信息:

在这里插入图片描述

输入‘i’,进入编辑模式,并编辑提交信息:

在这里插入图片描述
按Esc键,退出编辑模式,进入正常模式,然后输入:wq,保存编辑内容:

在这里插入图片描述
可以看到,新生成了一个提交对象:

在这里插入图片描述
将修改后最新的commit对象,push到远程仓库:

在这里插入图片描述
在Git仓库上,可以看到旧有的commit直接被覆盖了,被替代成了最新的commit对象:

在这里插入图片描述

git rebase -i commit + git commit --amend

上面的做法只可以修改最近一次提交对象的信息。那现在比如,我想任意选择一个commit对象进行修改,可以怎么做呢?

可以使用git rebase -i commit + git commit --amend。

如下所示,我现在的需求是,修改如下画红框所示的这个提交对象,我想把提交信息改为:使用History对象访问浏览器的历史浏览记录。

在这里插入图片描述
那么现在,我们需要先选定一下rebase的基准对象。我们需要选择以待被修改的对象前一个提交对象,作为基准。那么我们记录下这个提交对象的版本号。这个提交对象是rebase的基准:

在这里插入图片描述

在Idea的终端输入如下所示的git命令:

在这里插入图片描述

接着根据终端的提示,选择要修改的提交对象,将pick改为edit:

在这里插入图片描述
在这里插入图片描述

编辑完成后,输入‘Esc’,然后再输入‘wq’,保存结果,然后会出现如下信息:

在这里插入图片描述

根据提示可知,这表明可以使用git commit --amend命令来修改commit对象,修改完成后,就可以继续rebase了。

那么我们输入git commit --amend命令:

在这里插入图片描述

编辑提交内容为:

在这里插入图片描述

编辑完成后保存并退出:

在这里插入图片描述

可以看到修改成功了:

在这里插入图片描述

然后再输入:git rebase --continue,继续进行后续的reabse操作:

在这里插入图片描述

从git logs中可以看到,最新的提交对象们,以‘[up]方法注释补充’这个提交对象为基准,挂到了这个对象的后面了。

在这里插入图片描述

注意,‘JS脚本明明…’这个提交没有被rebase,这是因为当时rebase的时候提示需要处理一下这个提交对象,我对这个提交对象做了跳过处理,所以rebase的时候,这个提交对象被跳过了。

在这里插入图片描述

在这里插入图片描述

到这里,就rebase结束了,那么现在就可以把最新的提交对象,push到远程仓库了:

在这里插入图片描述

push完成后,我们再来看下git logs,从中可以看到,通过使用git rebase -i commit ,实现了以指定commit对象为基准,选择性指定要修改的对象,然后再以git commit --amend命令进行修改即可。

在这里插入图片描述

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值