git - 编辑过去的提交消息

标签 git

我在过去的提交消息中拼错了一些单词,想更正它们。 它们不是来自最后一次提交(5 次提交之前),所以 --amend 在这里不起作用。

修复此错误的最简单方法是什么?

最佳答案

使用 git log --oneline 确定要更改的提交。

$ git log --oneline
5ebe0d0 foo
66096c8 bar
d83d7a7 *typo*
a9f4c59 baz
...

然后对该提交的父级进行交互式 rebase (用 ^ 标识)。

$ git rebase --interactive 'd83d7a7^'

这应该会启动默认编辑器——除非您更改它,否则它就是 vim。


(这是为不太熟悉 vim 的人准备的。)

cw 并输入单词 edit。按 esc 并输入 :wq 以保存并退出文件。


现在您所要做的就是 git commit --amend,系统会提示您编辑提交消息。然后使用 git rebase --continue 完成 rebase。

注意:如果您有任何 merge 历史,这会将其展平。如果您真的不想这样做,请使用 --preserve-merges 选项和 git rebase(以及--interactive)。

关于git - 编辑过去的提交消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38555291/

相关文章:

git - GIT : I've got no branch! 吓坏我的生活

git - 将 git 存储库与现有文件同步

bash - 如何在 Windows 10 中创建 .gitignore 文件

Git:父提交比后代年轻?

Git:说 origin 已经存在于 "NEW"(init) 存储库中,使用 shell 但安装了 Github for Windows

visual-studio-2010 - 从程序包管理器控制台使用 poshgit 时出错

子模块的git公共(public)子模块

git - 使用 git,为什么在 merge 到功能分支后提交不出现在历史记录中?

git - 如何将本地 git 存储库导入到 github?

git - .gitignore 中 ./(点斜杠) 的功能?