【发布时间】:2017-11-18 19:39:35
【问题描述】:
我有一个提交被推送到远程,我想更改它的消息。
我知道我可以使用git push -f 强制推送不同的提交,但首先我需要删除旧的提交并保留更改,这样我才能再次提交。
我该怎么做?
【问题讨论】:
我有一个提交被推送到远程,我想更改它的消息。
我知道我可以使用git push -f 强制推送不同的提交,但首先我需要删除旧的提交并保留更改,这样我才能再次提交。
我该怎么做?
【问题讨论】:
如果要更改最新提交,请使用
git commit --amend
但是,对于已经推送的提交,只有在您确定没有人签出您正在覆盖的提交时,您才应该这样做。
【讨论】:
作为免责声明,此答案涉及重写相关分支的历史记录。因此,在已公开共享的分支上应谨慎使用。
这里最简单的解决方法是,假设没有其他人推送到分支的远程副本,只需通过以下方式修改提交:
git commit --amend
这应该会打开一个文本编辑器,您可以在其中将提交消息更改为您想要的任何内容。
正如您所提到的,您现在必须通过以下方式将该分支强制推送到远程:
git push --force origin yourBranch
【讨论】:
--amend 仅用于本地提交。
你需要使用以下命令git commit --amend,它将在本地创建相同的提交但带有正确的消息,然后你将它推送到远程
【讨论】:
使用:
git commit --amend
似乎是这里显而易见的解决方案,但您没有在问题中提及任何分支,因此在您的情况下,答案可能不是正确的解决方案。 如果您要重命名的提交位于目前只有您创建和使用的分支上并且尚未合并到另一个分支中,我建议另一个选项是:
不过,这确实取决于提交是在单独的分支上还是在主要分支上(例如 master)。
【讨论】: