git 修改刚刚的commit

commit未push到origin(远端)

在这里插入图片描述
现在最新的commit如图所示,添加了一行输出代码,只提交到了本地仓库,没有push到远端。现在我觉得这个commit不好,我想修改一下,但是又不想再弄一个commit,例如加一行代码注释,或者修改一下commit的描述。

例如,我现在加了一行代码注释:
在这里插入图片描述
的确,我直接提交这次修改的代码不会有任何问题,但是我就是有强迫症,耶稣也拦不住我,我不想再提交一次,我想修改上次的commit,使用我的修改代码。

我们可以使用如下git命令修改:

git add SayByeBye.java  //暂存修改的文件
git commit --amend  //修改刚刚的提交

当输入第二条命令时会进入如下界面:
在这里插入图片描述
此时我们是在修改上次的commit,我们顺便修改一下上次的commit的描述,保存退出后可以发现上次的commit被修改了。
在这里插入图片描述
有时候强迫症犯了拦都拦不住,我仅仅觉得刚刚的commit描述没写好,可以直接使用

git commit --amend  //修改刚刚的提交

这个命令会直接进入修改界面,直接修改描述即可。

Tip

以上的方法看起来真是头晕眼花,如果你用的是sourcetree的话就会方便很多。
在这里插入图片描述
在sourcetree提交页面有上图修改最后一次提交选项,当选择这个选项并点击提交就可以自动修改上次没有被push到远端的提交。

commit被push到origin(远端)

有时候手快拦都拦不住,习惯性commit后立马push到远端。push到远端后发现不行,需要修改一下刚刚已经push到远端的commit(注:可以在本地修改后push到远端,我们要做的是不生成新的commit)。
在这里插入图片描述
如上图所示,我们的commit现在被push到远端了,我现在想换个类编辑并修改一下commit的描述。我们可以直接修改代码后使用如下命令:

git add SayByeBye.java  //暂存修改的文件
git commit --amend  //修改刚刚的提交
git push origin feature/1.0 -f //强制推送,有可能远端设置了不允许强制推送,此时push的commit就真不能改了

输入git commit --amend后进入以下界面
在这里插入图片描述
保存描述后会发现变成提交历史如下:
在这里插入图片描述
会发现我们这次的修改是基于上图黑框框处的commit的修改的,不要忘了我们的目的,此时我们是想让feature/1.0覆盖掉origin/feature/1.0,下一步的git push origin feature/1.0 -f就起到了这个作用。运行完后如下:
在这里插入图片描述
可以发现刚刚push到远端的commit被我们又加了一个类的修改并修改了commit的描述。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值