如何更改已推送的 git 提交的名称?

How to change name of git commit that was pushed?

我有一个推送到远程的提交,我想更改它的消息。

我知道我可以使用 git push -f 强制推送不同的提交,但首先我需要删除旧提交并保留更改,这样我才能再次提交。

我该怎么做?

如果要更改最新提交,请使用

git commit --amend

但是,对于已经推送的提交,只有当您确定没有人签出您正在覆盖的提交时才应该这样做。

作为免责声明,此答案涉及重写相关分支的历史记录。因此,在公开共享的分支上应谨慎使用。

假设没有其他人推送到分支的远程副本,这里最简单的修复方法是简单地修改提交:

git commit --amend

这应该会打开一个文本编辑器,您可以在其中将提交消息更改为您想要的任何内容。

如您所述,您现在必须通过以下方式强制将此分支推送到远程:

git push --force origin yourBranch

你需要使用下面的命令git commit --amend,它会在本地创建相同的提交,但带有正确的消息,然后你将它推送到远程

使用:

git commit --amend

似乎是这里显而易见的解决方案,但您没有在问题中提及任何分支,因此在您的情况下答案可能不是正确的解决方案。 如果您要重命名的提交位于到目前为止只有您创建和使用的分支上并且尚未合并到另一个分支中,我建议另一种选择是:

  • 从问题中提交之前的提交分支到新分支
  • 重新执行代码更改
  • 重新提交正确的消息文本
  • 推送新分支
  • 旧分支的删除和推送删除

不过,这实际上取决于提交是在单独的分支上还是在主要分支上(例如 master)。