修改提交注释与作者

1.修改最近一次提交信息

git commit --amend -m '修正信息'

如果写错了提交消息:


可以通过:git commit --amend -m 注释来修改上一次的提交信息:(amend是修复的意思)


git commit --amend

当需要为最近一次提交添加大量注释时,可以直接使用该指令进入vim编辑器编辑:



这样的好处是:错误的提交和修正后的提交经过该命令修正后,只变为一次提交,而不是两次提交

git commit --amend --author 'Name<email>'

用于修改最近一次提交的配置信息,包含作者和注释信息。执行命令时会进入vim编辑器编辑注释信息:


修改前该分支上最近两次的提交信息为:

修改后的最近两次提交信息为:

可以看到成功地改变了最新一次提交的作者和提交注释。

注意:修改提交注释的同时,虽然提交的内容相同,但是提交前后的commit_id是不同的,说明创建了一个新提交替换了原来需要修正的提交。如下图中的提交5与提交3所示:


2.修改特定提交信息

如图所示,在test分支进行了四次提交。现在我们想要修改第三次提交的提交信息:


git rebase -i commit_id

通过以上指令可以进入rebase交互模式,并显示commit_id之后的提交信息。比如:若命令中的commit_id为第一次提交的commit_id,那么就会显示第2~4次的提交信息。这里我们需要修改第三次提交的信息,只需要将它指定为第二次提交的commit_id即可。执行以下命令,进入vim编辑器:

git rebase -i 678e0


在这个界面中,我们可以通过将pick参数修改为其他rebase提供的参数,从而对第三次错误提交进行修改。有两个参数可以实现这一目的:

  这里涉及到vim编辑器的使用方式:

  • shift + A为插入命令,可进入vim编辑器的编辑模式;
  • 编辑完成后,先按ESC回到vim编辑器的命令行模式,再输入:wq表示保存并退出编辑器;

reword参数 该参数的意思是:直接修改设置了该参数的提交的提交注释。这里应该将第三次提交的pick参数改为reword:


通过:wq保存并退出,随后再次进入vim编辑器,这次是修改设置了reword参数的提交的提交注释:

将它改为正确的提交信息:

通过:wq保存并退出vim编辑器,完成错误提交信息的修改,再次查看历史提交信息:

可以发现:错误的提交信息得到了纠正,并且这次提交及其之后的提交的commit_id都发生了变化。说明git新创建了对应数目的提交,并对原有提交进行了覆盖,但是内容没有发生变化;

事实上:rebase的含义为变换基准,git rebase -i commit_id中的commit_id所指的提交节点就是新的基准点。该基准点之后的提交都会被git新创建的,内容一样的新提交所覆盖。rebase指令之后会详细介绍。

edit参数

该参数也可以达到上述效果,只不过稍微多了几个步骤。这个参数的意思是:停下rebase进程,编辑添加了该参数的提交,编辑完之后,通过调用git rebase --continue继续进行rebase;具体如下:

将添加了错误提交信息的提交的pick参数改为edit参数:


通过:wq保存并退出:

可以看到,edit参数将rebase操作停了下来。根据提示,可以通过:

git commit --amend

进入vim编辑器,修改当前提交的注释信息:


修改完后,通过:wq保存并退出vim编辑器。再调用:

git rebase --continue

继续进行rebase操作,由此完成错误提交信息的修改:


此时查看test分支的提交历史,会发现错误的提交信息得到了更正,并且与上reword参数一样,创建了新的提交,对原有提交进行了覆盖,同样内容也不发生变化:


git rebase -i HEAD~n

通过上述指令也可以进入rebase交互模式,其中n表示需要显示的最近n次提交记录。比如通过以下指令,显示test分支最近的三次提交记录:

git rebase -i HEAD~3


进入rebase的交互界面之后,后续的操作和结果都与第一种方法一样,这里就不再赘述了。

版权声明: 本文为智客工坊「AhuntSun」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

results matching ""

    No results matching ""