myfreax

如何修改Git提交消息

使用Git时,您可能会遇到需要编辑提交消息的情况。做出更改的原因有很多,例如修正错字,删除敏感信息或添加其他信息。本指南说明了如何更改最近或更旧的Git提交的消息。

4 min read
By myfreax
如何修改Git提交消息

使用Git时,您可能会遇到需要编辑提交消息的情况。做出更改的原因有很多,例如修正错字,删除敏感信息或添加其他信息。

本教程说明了如何更改/修改最近或之前的Git提交消息。git commit --amend命令允许您修改最新的提交消息。包括未推送的提交消息,已推送的提交消息,强制更新远程仓库提交消息,更改/修改之前的提交。

未推送的提交

要更改尚未推送到远程仓库的最新提交的消息,请使用--amend选项再次提交。使用cd命令导航到仓库存储目录。运行以下命令来修改(更改)最新提交的消息:

git commit --amend -m "New commit message."

该命令的作用是用新的覆盖新的提交。-m选项允许您编写新消息在命令行上而不打开编辑器。在修改提交消息之前,您还可以添加以前忘记的其他更改:

git add .
git commit --amend -m "New commit message."

已推送的提交

修改/更改的提交是具有不同hash。先前的提交将不再存在于当前分支中。通常,您应该避免修改已经推送的提交,因为这可能会给基于此提交工作的人们带来麻烦。在更改已推送的提交之前,最好先咨询您的开发人员。

如果您更改了最近推送的提交消息,则必须强制推送它。导航到存储库,修改最新推送的消息:

git commit --amend -m "New commit message."

强制推送以更新远程存储库的历史记录:

git push --force branch-name

更改/修改之前的提交

如果您需要更改较早或之前多次提交的消息,则可以使用交互式git rebase来更改一个或多个较早的提交消息。rebase命令会重写提交历史记录,强烈建议不要对已经推送到远程Git存储库的提交进行重新整理。

导航到包含您要更改的提交消息的存储库。键入git rebase -i HEAD~N,其中N是要进行更改的提交数。例如,如果要更改第4次和第5次的提交,请键入:

git rebase -i HEAD~5

该命令将显示最新的X次提交在您的默认文本编辑器中

pick 43f8707f9 fix: update dependency json5 to ^2.1.1
pick cea1fb88a fix: update dependency verdaccio to ^4.3.3
pick aa540c364 fix: update dependency webpack-dev-server to ^3.8.2
pick c5e078656 chore: update dependency flow-bin to ^0.109.0
pick 11ce0ab34 fix: Fix spelling.

# Rebase 7e59e8ead..11ce0ab34 onto 7e59e8ead (5 commands)

移至您要提交的提交消息行更改并用reword替换pick

reword 43f8707f9 fix: update dependency json5 to ^2.1.1
reword cea1fb88a fix: update dependency verdaccio to ^4.3.3
pick aa540c364 fix: update dependency webpack-dev-server to ^3.8.2
pick c5e078656 chore: update dependency flow-bin to ^0.109.0
pick 11ce0ab34 fix: Fix spelling.

# Rebase 7e59e8ead..11ce0ab34 onto 7e59e8ead (5 commands)

保存更改并关闭编辑器。对于每个选定的提交,将打开一个新的文本编辑器窗口。更改提交消息,保存文件,然后关闭编辑器。

fix: update dependency json5 to ^2.1.1

强制将更改推送到远程存储库:

git push --force branch-name

结论

要更改最新的提交消息,请使用git commit --amend命令,而要更改之前多个提交消息,请使用git rebase -i HEAD~N。请勿修改已推送的提交,因为这可能会给您的同事带来很多问题。如果您遇到问题或有反馈,请在下面发表评论。