有时你提交过代码之后,发现一个地方改错了,你下次提交时不想保留上一次的记录;或者你上一次的commit message的描述有误,这时候你可以使用接下来的这个命令:git commit --amend。

git功能十分强大,接下来我将讲解一下git commit --amend命令的用法~

git log之后,可以看到你之前提交过的git历史:

详解git commit --amend 用法https://pic1.zhimg.com/80/v2-0d0a335a3a87091c40ce138b8be1a9f0_720w.jpg&;quot;,"alt":"","width":"616","height":"","lock":true,"align":"none","classes":[]}" data-cke-saved-src="https://www.jb51.net/img.jbzj.com/file_images/article/202008/202008040952195.jpg" src="https://www.jb51.net/img.jbzj.com/file_images/article/202008/202008040952195.jpg" />​

接下来,在bash里输入wq退出log状态,执行:

$ git commit --amend

这时bash里会出现以下内容:

详解git commit --amend 用法https://pic3.zhimg.com/80/v2-b2ab0be08ad6a72d151c5a0ef94ed646_720w.jpg&;quot;,"alt":"","width":"627","height":"","lock":true,"align":"none","classes":[]}" data-cke-saved-src="https://www.jb51.net/img.jbzj.com/file_images/article/202008/202008040952206.jpg" src="https://www.jb51.net/img.jbzj.com/file_images/article/202008/202008040952206.jpg" />​

其中,second commit是你上次提交的描述,下面是一下说明信息,有告诉你上次提交的文件信息等等,可忽略。接下来你要是想修改描述信息的话。直接键入:i,此时进入了输入模式,变成这样子:

详解git commit --amend 用法https://pic2.zhimg.com/80/v2-c7756d0088e911ef843b5600365926bd_720w.jpg&;quot;,"alt":"","width":"631","height":"","lock":true,"align":"none","classes":[]}" data-cke-saved-src="https://www.jb51.net/img.jbzj.com/file_images/article/202008/202008040952207.jpg" src="https://www.jb51.net/img.jbzj.com/file_images/article/202008/202008040952207.jpg" />​

可用键盘上下键转到描述所在的那一行,然后进行修改:

详解git commit --amend 用法https://pic3.zhimg.com/80/v2-c5da05b7c480adeab60361e7c97c298e_720w.jpg&;quot;,"alt":"","width":"621","height":"","lock":true,"align":"none","classes":[]}" data-cke-saved-src="https://www.jb51.net/img.jbzj.com/file_images/article/202008/202008040952208.jpg" src="https://www.jb51.net/img.jbzj.com/file_images/article/202008/202008040952208.jpg" />

修改完成后,按下 Esc键退出编辑模式,在键入 :wq 回车退出并保存修改,完成提交。这是你再git log 看一下提交日志:

详解git commit --amend 用法https://pic1.zhimg.com/80/v2-e622a7ece92566b273eb9b70f48547b8_720w.jpg&;quot;,"alt":"","width":"1226","height":"","lock":true,"align":"none","classes":[]}" data-cke-saved-src="https://www.jb51.net/img.jbzj.com/file_images/article/202008/202008040952209.jpg" src="https://www.jb51.net/img.jbzj.com/file_images/article/202008/202008040952209.jpg" />

已经修改了提交描述信息,且原来的git版本没有了~~~喜大普奔!!你完成~~

但是有个地方要注意,就是该操作会改变你原来的commit id哦。

适用场景:

场景1.本地开发代码已提交,提交后发现这次提交的代码有问题,或者漏提交了一些文件,此时,希望达到以下目的:

①修改有问题的代码。

②补足漏提交的文件(一般是新增的文件没有git add .)

③把以上2点相关的代码,和前一次提交的代码合并成1个提交。

④给合并后的这个提交添加新的注释。

解决办法:

--》修改问题代码

--》git add . (把漏提交的文件假如暂存区)

--》执行git commit --amend -m "这里填写提交的注释"

场景2.新接到需求,需要基于master分支拉取一个feature分支,且这个feature分支只有你自己使用(这一点极其重要),由于开发周期较长,你不想每一次都产生一个新的commit,而是每一次commit都修改前一次提交,这样做的好处是,等到你的feature分支提测时,就只有1个干净的commit,没有乱七八糟的提交历史,你只要把这1个commit合并到master里就好了 。

解决办法:在feature分支上,

第1次提交代码时,使用git commit -am "第1次提交的注释"

第2次以后提交代码时,使用git commit --amend -m "这里填写提交的注释"

这样,整个分支可以只有1个commit。

到此这篇关于详解git commit --amend 用法的文章就介绍到这了,更多相关git commit --amend 内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我!

更多文章请关注《万象专栏》