【问题标题】:How to change second last commit message which is not pushed yet如何更改尚未推送的倒数第二个提交消息
【发布时间】:2021-09-22 03:48:17
【问题描述】:

我通常会提交一份提交列表以供审核。如果我有以下提交:

HEAD     (not pushed)
Commit1  (not pushed) (Merged master here)
Commit2
Commit3
...

我知道我可以使用 git commit --amend 来修改 head commit。但是如何修改 Commit1?鉴于它不是 HEAD 提交且未推送。 git rebase 没有显示在我输入 git rebase -i HEAD~3 的列表中。

【问题讨论】:

  • git rebase -i Commit2(带有实际提交 ID)也不起作用?
  • 是合并提交吗?也许显示此命令的输出会有所帮助:git log --graph --oneline

标签: git push message commit


【解决方案1】:

感谢您的回答, 实际上,我想修改的提交消息是合并提交,而 git rebase 命令在 rebase HEAD~n 命令中没有显示合并提交(如果没有推送的话),这是主要问题。

在我同事的帮助下,我能够通过这个命令解决

git rebase -i -p HEAD~3

其中 -p 用于保留合并 仍然无法完全理解这是如何工作的,但它完成了工作。

【讨论】:

    【解决方案2】:

    如果你:

    您可以使用git filter-repoits callbacks,根据旧消息的内容:

    git-filter-repo --message-callback '
      if b"known content" in message:
        message = "New message\npossibly on\n several lines""
      return message'
    

    【讨论】:

      猜你喜欢
      • 2010-10-09
      • 1970-01-01
      • 2016-03-01
      • 2011-06-29
      • 1970-01-01
      • 2014-10-28
      • 2021-09-14
      • 2013-06-15
      相关资源
      最近更新 更多