2017-06-16 38 views
0

我有一个被推送到远程的提交,我想更改它的消息。如何更改推送的git commit的名称?

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

我该怎么做?

回答

4

作为一个免责声明,这个答案涉及到重写有关分支的历史。因此,应该谨慎使用已公开分享的分支机构。

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

git commit --amend 

这应该弹出一个文本编辑器,你可以将提交消息更改为任何你想要的。

正如你所说,你现在必须强制通过这个分支推送到远程的:

git push --force origin yourBranch 
+0

谢谢,我以为'--amend'只用于本地提交。 – jcubic

2

如果你想改变的最新承诺,使用

git commit --amend 

然而,对于已经被推送的提交,你只能这样做,如果你确信没有人签出的承诺将要覆盖。

1

以及你需要使用下面的命令git commit --amend,这将创造同样的地方,但有正确的信息提交,然后你把它推到远程

0

使用:

git commit --amend 

似乎这里是显而易见的解决方案,但你没有提到任何分支在你的问题,以便答案可能不正确的解决方案在你的情况。 如果您要重命名的承诺是只有你创建的,至今使用的,并没有被合并到另一个分支的一个分支,我建议另一种选择是:

  • 分支,从一个新的分支提交之前在这个问题提交
  • 重新执行代码更改
  • 与正确的消息文本
  • 重新提交推新分支
  • 删除和推送的缺失的老枝的

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

+0

我认为有问题的提交已经推送到远程。 –

+0

没错,但如果它在没有人使用的分支上,它可以安全地删除。似乎这个问题缺乏关于分支的信息。无论如何,似乎他接受了你的回答,所以我刚才提出了另一种解决问题的方法 – yorammi