有没有办法在 GitHub 上编辑提交消息?

Mat*_*ers 144 git github

有没有办法在提交并推送到 GitHub 后编辑提交消息?我看到有一个“添加注释”以及内联评论,但没有实际编辑提交消息。git 扩展中还有“修改提交”,但这不会编辑现有消息。

Mur*_*nik 196

  1. git rebase -i <commit hash you want to change>^

    这将打开您的默认编辑器(通常是),其中包含每个提交和操作的列表。默认情况下,操作是pick

  2. 对于您希望更改消息的任何提交,请更改pickreword.

  3. 保存并退出(在 vi: 中:wq)。

  4. 对于每个这样的提交,您将获得一个编辑器来编辑提交消息。根据您的需要更改它,保存并退出。

    完成所有提交消息的编辑后,您将返回命令提示符,并拥有一个包含更新消息的新树。

  5. 您现在可以使用 将它们上传到 github git push origin --force

如果您只需要修复上次提交,则可以将步骤 1-4 替换为git commit --amend.

  • 似乎您不能指定 &lt;commit hash you want to change&gt;,而是需要在要更改的提交之前指定提交的哈希或使用 HEAD~x 其中 x 是来自 HEAD 的提交数量,其中您要更改的项目驻留。 (4认同)
  • @MatthewPeters 我认为应该有办法,但我不知道 - 我直接使用命令行。 (3认同)
  • @ssc327 请注意,我在那里 **`^`** - 我确实建议重新基于您要更改的提交的父级。 (3认同)
  • @Murenik 你是对的,我不知何故错过了看到 ^ (2认同)

小智 35

在 Intellij Idea 中,您可以轻松完成。

  1. 开放版本控制(历史)
  2. 选择日志选项卡
  3. 选择提交以更改评论
  4. 按 F2 (Mac fn + F2),然后更新你的提交信息

  • 之后您必须按照@Mureinik 的回答中的建议执行`git push origin --force`。 (8认同)
  • 如果您已经推送到远程,则不起作用。 (2认同)
  • 如果已经推送提交,则禁用“reword”选项。 (2认同)

KY *_* Lu 5

前提:

如果你的 git-graph 看起来像...

O   target-commit that you want to change its message [df9c192]
|
O   parent-commit [b7ec061]
|
O
Run Code Online (Sandbox Code Playgroud)

df9c192b7ec061分别是目标提交和父提交的提交哈希值)

解决方案:

您只需输入以下说明即可...

git reset --soft b7ec061
git commit -m "your_new_description"
git push -f
Run Code Online (Sandbox Code Playgroud)

解释:

  1. git reset --soft b7ec061将保留您对文件的更改并重置为父提交(即b7ec061)
  2. git commit -m "..."将在本地创建一个新的提交
  3. git push -f将把你的新提交推送到服务器并替换旧的(即 df9c192)