【问题标题】:Editing the git commit message in GitHub在 GitHub 中编辑 git commit 消息
【发布时间】:2012-05-30 12:02:30
【问题描述】:

提交后有没有办法在线编辑GitHub.com中的提交信息?

从命令行,可以做到

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

正如another question 中正确建议的那样。

尝试git pull 然后git push 已经奏效(同时没有任何其他提交干扰)。

但是可以通过GitHub 网站完成吗?

【问题讨论】:

  • 请参阅@DanGreen-Leipciger 的answer,即使它不是被接受的。

标签: git github commit post-commit


【解决方案1】:

我也遇到了同样的问题。

在您的 github 中查看特定分支,您将知道该分支中第一个提交的提交 ID。对此做一个变基:

git rebase -i <Commit SHA of first commit>

将打开一个编辑器。从 github UI 跟踪您的提交并打开编辑器并更改消息。

【讨论】:

    【解决方案2】:

    不,这不可能直接实现。每个 Git 提交的哈希值也是根据提交消息计算的。当您更改提交消息时,您会更改提交哈希。如果要推送该提交,则必须强制该推送(git push -f)。但是,如果已经有人取消了您的旧提交并基于该提交开始了一项工作,那么他们将不得不将他们的工作重新定位到您的新提交上。

    【讨论】:

    • 我也可以先执行 git pull 然后执行 git push ,这样就可以了。但显然没有在线方式。
    • 截至 2016 年 4 月 5 日仍然不可能
    • 而且我想这不会是高优先级,因为您会更改已发布分支的提交历史记录,这是您永远不应该这样做的(除非您 200% 确定,其他人没有这个分支在他的本地机器上)。
    • 这只是对了一半。这是真的,但仅限于假设。如果与@DanGreen(下)的答案结合起来,答案会更好。这不是“直接可能的”,当然它带有预警(即:“你应该'永远'不要这样做...... [除非你确定你想要]”) - 但只是说这不是可能,当它在技术上是可能的,是一个不完整的答案。
    • OP 询问是否可以在 Github 网站上在线进行。 AFAIK 这仍然是不可能的。所以我的回答是有效的,而 Dan Green 的回答只处理如何在本地做的方式,而不是在 Githubs 网站上。
    【解决方案3】:

    我被要求修改我在 github 上提交的补丁提交消息,(并最终在这里。)这就是我为完成工作所做的。

    git clone git@github.com:YOURNAME/EXAMPLE.git; cd EXAMPLE; git fetch --all; git pull --all
    git checkout -b patch-2 origin/patch-2 # create local patch-2 branch
    git commit --amend # update the commit message
    git push -f
    

    这适用于分支上的最后一次提交。如果有问题的提交更深,您将需要做一些更复杂的事情。 (我不知道是否需要 fetch 和 pull,但我只是在做其他事情以节省时间时跳过了那一行。)

    【讨论】:

      【解决方案4】:

      对于 Android Studio / intellij 用户:

      • 选择版本控制
      • 选择日志
      • 右键单击要重命名的提交
      • 点击编辑提交消息
      • 写下你的提交信息
      • 完成

      【讨论】:

        【解决方案5】:

        对于 intellij 用户: 如果您想以交互方式对过去的提交进行更改,这些提交未推送,请按照 Intellij 中的以下步骤操作:

        • 选择版本控制
        • 选择日志
        • 右键单击要修改评论的提交
        • 点击改写
        • 完成

        希望对你有帮助

        【讨论】:

          【解决方案6】:

          GitHub 的说明:

          1. 在命令行上,导航到包含您要修改的提交的存储库。
          2. 输入 git commit --amend 并按 Enter。
          3. 在您的文本编辑器中,编辑提交消息并保存提交。
          4. 使用git push --force example-branch 命令强制推送旧提交。

          来源:https://help.github.com/articles/changing-a-commit-message/

          【讨论】:

          • 小心!使用 & 和 之间的区别在于,在第一种情况下,您正在文本编辑器中编辑提交消息 &在第二个中,您将其替换为“新提交消息”。如果您强制推送,这将替换您遥控器上的提交。这并不能解决问题,如果您团队中的其他人已经取消了之前的提交,那么您现在在不同的机器上拥有不同的历史记录(包括不同的提交)。如果您知道没有人取消您的提交,这是安全的。阅读来源 Dan 发布的内容
          • git commit --amend 一直存在。此外,您对 git(这是一个开源命令行工具)和 Github(这是一家提供在线源代码托管的公司)感到困惑。
          • OP 询问了 GitHub,特别是在提交被推送到他们的服务器之后。这些是 GitHub 关于执行 OP 所要求的操作的说明。
          • @DanGreen-Leipciger - 是的,但这不是在网站本身上完成的,而是使用命令行完成的。我认为 PNS 想在 Web 界面中做到这一点。
          • OP 询问了如何专门用 GitHub 来做,这是专门用 GitHub 做的。
          【解决方案7】:

          不,因为提交消息与提交 SHA / 哈希有关,如果我们更改它,提交 SHA 也会更改。我使用的方式是对该提交创建评论。我想不通。

          【讨论】:

            【解决方案8】:

            你需要git push -f 假设之前没有人拉过另一个提交。当心,你正在改变历史。

            【讨论】:

              猜你喜欢
              • 2020-06-27
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-11-23
              • 1970-01-01
              相关资源
              最近更新 更多