【问题标题】:How to change name of git commit that was pushed? [duplicate]如何更改被推送的 git commit 的名称? [复制]
【发布时间】:2017-11-18 19:39:35
【问题描述】:

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

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

我该怎么做?

【问题讨论】:

    标签: git push rename commit


    【解决方案1】:

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

    git commit --amend
    

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

    【讨论】:

      【解决方案2】:

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

      这里最简单的解决方法是,假设没有其他人推送到分支的远程副本,只需通过以下方式修改提交:

      git commit --amend
      

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

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

      git push --force origin yourBranch
      

      【讨论】:

      • 谢谢,我以为--amend 仅用于本地提交。
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        使用:

        git commit --amend
        

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

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

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

        【讨论】:

        • 我认为有问题的提交已经被推送到远程。
        • 对,但是如果它在没有人使用的分支上,它可以安全地删除。似乎问题缺少有关分支的信息。无论如何,他似乎接受了你的回答,所以我只是建议了另一种解决问题的方法
        猜你喜欢
        • 2011-07-16
        • 2011-06-29
        • 2010-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-25
        • 2019-08-10
        相关资源
        最近更新 更多