Git进阶:修改上次提交 git commit --amend

一、问题说明

git commit 后,发现刚才的备注写错了,或者代码漏掉了,想取消刚才的提交。此刻有两种方法
(1)使用git reset命令将刚才的提交会退掉(需要注意的是git reset --soft 和git reset --hard的区别)。
(2)修改刚才的提交:git commit --amend。这个命令的实质是使用一次新提交覆盖上一个提交

相比git reset,git commit --amend有很多优点,比如如果工作区已经改的面目全非,这时如果执行 git reset, 就很难分的清哪些内容属于被撤销的提交了,而且回退已经push的提交,那么reset后有可能会因为本地版本比远程版本低而造成push被拒绝。

这里说第二种方法,git commit --amend

二、问题重现

1、 代码修改后,进行了第一次提交。请注意这里的版本号

在这里插入图片描述

2.现在我现在发现刚才的提交错了,下面开始amend的操作,修改刚才的提交

$ git commit --amend

得到如下的界面,出现一个vim编辑器,修改相关内容后,保存。如图所示我修改了提交的备注

在这里插入图片描述

保存后再看一下log日志,很明显,我成功的修改了提交的备注。但是需要注意的是,提交的版本号也变了,因此说git commit --amend命令的实质是使用一次新提交覆盖上一个提交。

在这里插入图片描述

至此,git commit --amend的使用已经介绍完毕了,有兴趣可以继续往下阅读。

问题扩展

有可能出现一个问题。我使用amend修改提交之后发现,原来我第一次的提交才是对的,amend的修改是错误的。那我想回到第一次提交的那个版本,怎么办?

这时候就可以使用git reset来进行恢复了。

首先使用 git reflog 命令查看操作记录,git reflog可以查看到你的所有操作历史,就像回退commit一样,你可以回退你的操作,当然不限于这里的amend,其他操作也可以使用这种方法撤回。

在这里插入图片描述

很明显,我们只需要回退’d5edfc3‘那个操作就行了。
我这里使用了git reset --hard (–hard参数会将回退的内容丢弃掉,请根据自己的需求谨慎使用)。

在这里插入图片描述

再次查看log后,很明显可以看到提交的备注、尤其是版本号,已经回到最开始的那一个版本了。

在Git中,总是有后悔药可以吃的。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值