Git amend:修改最近一次提交

Git 中允许修改已经提交的commit,包括最近一次提交以及最近多次提交。修改最近多次提交比较复杂,以后会有介绍。本文主要是解释下开发过程中遇到频次比较高的修改最近一次提交amend命令。

从一个简单的例子入手。

# 初始化一个git项目
git init 
# 添加一个文件,并输入一些内容
vim a.txt

之后提交当前文件

# 暂存
git add .
# 提交
git commit -m "v1"

可以看到当前的状态,我这里使用了可视化的工具sourcetree
在这里插入图片描述
接着,比如我有做了一些调整,再一次提交V2。

在这里插入图片描述

结果没成想,手一抖,2写成了3。真是惭愧,咋整呢?其实有两种方法:

  • 其一是reset到上一次提交,然后重新提交。
  • 其二是本文介绍的amend

amend使用起来非常简单:

git commit --amend

输入以上命令之后,命令行窗口会进入到交互式的界面。你完全可以理解为就是vim的编辑界面
在这里插入图片描述
如图所示,按以下步骤操作(和vim一样):

  1. i进入编辑模式
  2. 修改提交信息
  3. esc退出编辑模式
  4. shift+; 然后再输入wq回车退出

此时就已经完成了修改message的操作

在这里插入图片描述
怎么样是不是很简单。但是我还要扩展一下…

第一,不知道细心的同学是否已经发现,两次提交的id发生了变化。那么这会有什么影响呢?其实如果你代码没有Push,那么问题不大,这也正是amend优雅的使用场景,即代码还未push到远端。但如果已经push到远端,那么会产生这样一种情况:
在这里插入图片描述
以上相当于你本地和远端已经产生分支,需要合并。也就是这一次amend之后,你是推不上代码的。你不得不pull代码下来后进行合并,再次提交一次,但这实在有违初衷。

don’t amend your last commit if you’ve already pushed it.

第二,如果你不仅想修改提交信息,也需要提交内容进行修改,也同样是没有问题的。毕竟这个命令本身就是执行一次提交git commit。这里的例子见下文。

最后,如果如只想提交文件的变动而不是提交信息的修改。那么可以使用如下命令

git commit --amend --no-edit 

在这里插入图片描述
如上,我将a.txt文件做了一些调整。然后直接执行以上的命令,那么将得到以下的结果。
在这里插入图片描述
也就是我既将修改的代码提交了,也没有添加任何描述。但复用了以前的描述。

好了,基本上涉及到amend的参数就是这些了,如果有什么其他的问题,欢迎评论区指出,我及时调整。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值