git 提交后怎么修改commit的描述信息?

149 阅读4分钟

说在前面

现在应该99%的同学都是使用git进行代码版本管理了吧?那么有没有过在代码提交后发现commit的描述信息写错了的情况(强迫症真的会被逼死🤯)?那么我们需要怎么修改git提交后的描述信息呢?

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

当我们只是想要修改最近一次提交的描述信息,且这个提交尚未被推送到远程仓库时,可以使用git commit --amend命令。

(1)查看提交历史

在修改之前,我们可以通过git log命令来查看提交历史。git log会以列表的形式显示每个提交的哈希值、作者、日期以及提交信息等内容。这一步主要是为了确认我们要修改的是最近一次提交。

这里可以看到我们最新的一次提交信息写的是提交test文件111

(2)执行修改命令

运行git commit --amend命令。执行该命令后,Git会打开一个文本编辑器(通常是系统默认的文本编辑器,如vimnano),在这个编辑器中会显示出原来的提交信息。我们可以在这个编辑器中对提交信息进行修改。

(3)保存并完成修改

完成信息修改后,保存并关闭编辑器。此时,Git就会用新的描述信息覆盖原来的最近一次提交的描述信息。

这样就将我们的提交信息修改成提交test文件了。

2、修改历史提交的描述信息

如果我们想要修改的是历史提交的描述信息,尤其是在已经有多次提交或者提交已经被推送到远程仓库的情况下,情况会稍微复杂一些,我们可以使用交互式变基(git rebase -i)的方法。但需要注意的是,这种方法会改写提交历史,因此如果已经将这些提交推送到远程仓库并且其他团队成员也在使用这个仓库,可能会引发一些问题。

(1)确定提交范围

首先,使用git log来确定要修改的提交的范围。我们需要找到要修改的提交的哈希值或者相对位置(例如,相对于当前分支头的第几个提交)。

(2)启动交互式变基

运行git rebase -i [startpoint]命令。这里的[startpoint]可以是一个提交的哈希值或者像HEAD~n这样的表示相对位置的表达式(n表示从当前分支头开始往前数的提交个数)。例如,如果我们想修改最近2个提交的信息,可以运行git rebase -i HEAD~2

(3)标记要修改的提交

执行上述命令后,Git会打开一个文本编辑器,里面列出了我们指定范围内的提交,每行一个提交,格式类似于pick [commit - hash] [commit - message]。我们需要将想要修改的提交那一行的pick改为edit

我们将第一个提交的pick改为edit

(4)暂停变基并修改信息

保存并关闭编辑器后,Git会开始交互式变基操作。当操作到我们标记为edit的提交时,Git会暂停变基过程。此时,我们可以运行git commit --amend命令来修改提交信息,操作方法和修改最近一次提交信息相同。

  • 暂停变基的时候执行命令修改提交信息:
git commit --amend

  • 修改完成后继续变基操作,执行命令:
git rebase --continue

这个时候再看一下提交记录,就会发现第二条提交记录的提交信息已经从“提交test文件”修改为“提交test文件1”了。

3、注意

在修改已经推送到远程仓库的提交信息时,我们需要格外谨慎。如果其他团队成员已经拉取了旧的提交,我们修改并推送后,他们在拉取新的修改时可能会遇到合并冲突等问题。所以,对于共享的远程仓库,最好在整个团队成员都了解情况并且同意的情况下,再对已经推送的提交历史进行修改。这样可以避免给团队协作带来不必要的麻烦,确保项目的版本控制和开发流程顺利进行。

公众号

关注公众号『前端也能这么有趣』,获取更多有趣内容。

说在后面

🎉 这里是 JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。