如何更改旧的提交消息?

问题描述 投票:0回答:3

我需要更改旧的提交消息。考虑到我之后做了一些其他提交,有没有办法通过 git 或直接在 GitHub 上更改它,而不干扰其他提交?

git github version-control commit git-commit
3个回答
11
投票

您不能使用

git commit --amend
,因为这不是您最近的提交。

您可能想要进行变基,类似于

git rebase -i HEAD~3

其中 3 是您想要返回的提交数量。

这是进行交互式变基。在打开的屏幕或文本窗口中,将

pick
替换为
reword

在下一个屏幕或文本窗口中,您将能够更改提交消息。

执行变基会更改提交哈希值,因此您需要执行

git push --force-with-lease
,否则您的更改将被服务器拒绝。

在进行潜在破坏性提交时,

--force-with-lease
通常比
--force
更安全。

请参阅发布的链接 @Myffo 中的修改旧的或多个提交消息


7
投票

要更改旧提交的消息,您可以使用其中之一

git rebase -i HEAD~4

(4 是任意数字,而不是 4,您必须使用要更改的提交的排名,最新提交被视为 1)

git rebase -i (SHA of the commit you want to edit)^

例如。 git rebase -i 993ff4750f38b701383575a95b4efea54cc77658^

(别忘了在你的sha末尾添加“^”符号)

这些命令将在默认文本编辑器中显示最新提交。 在该文本编辑器中找到您想要更改的提交,并将“pick”替换为“reword”。保存退出后。将弹出另一个窗口供您更改消息。


0
投票

可以用不同的消息替换提交,而不影响现有的提交哈希值,而不是重新定基并强制推送修改后的分支。

语法如下:

git replace --edit <commit>

这将打开编辑器并显示如下内容:

tree 430db025986d2bf8791be16b370ec37a00f6924b
parent 77efdb98a6e021ca81cd96f7c8c05d25c09e0ad4
author John Doe <[email protected]> 1698219601 +0200
committer John Doe <[email protected]> 1698219601 +0200

<initial commit message>

修改消息并保存。

这需要 Git 2.1 或更高版本。

https://git-scm.com/docs/git-replace

© www.soinside.com 2019 - 2024. All rights reserved.