GIt如何修改某一个版本记录的提交信息(commit message)?
问题背景
在使用 git 提交版本的过程中,发现之前的版本的提交信息有问题,需要修改,一时不知道怎么解决。通过查阅网络资料1,发现可以用 git commit --amend
命令修复,但是这个命令只能修改刚刚提交的版本。
后面后发现命令 git rebase -i <versionID>
可以修改指定版本的提交信息。但是这个命令只能修改非 root
的版本,换句话,要修改的版本需要有parent
版本。而笔者需要处理的版本恰好是 第一个版本。
继续查阅资料2,经过验证,发现可以使用 git rebase -i --root
修改第一个版本(root)的提交信息。
问题分析
目的是修改某个版本的提交信息,经过分析,分为三类:
- 刚刚提交的版本
- 中间某个版本
- 第一个版本
问题解决
回到最初的问题,想要修改第一个版本的提交信息,详细操作截图可以参考这 个教程 。
操作步骤:
- 命令行执行
git rebase -i --root
会进入 vim 模式,默认显示的全部的版本提交信息之前应该是pick
关键字修饰,将需要修改版本提交信息的版本前面的pick
改为reword
,表示要修改这个版本提交信息,修改好后,退出 vim - 上一步退出 vim 后,会自动进入到一个页面,此时可以修改版本提交信息,修改好,继续退出 vim
- 如果操作成功,则会显示
Successfully rebased and updated refs/heads/master.
- 此时需要的修改的版本的提交信息就会变为修改后的信息
对于这类问题——修改提交版本信息(commit message)可分 3 种情况:
- 刚刚提交的版本:
git commit --amend
- 中间某个版本:
git rebase -i <versionID>
,versionID
是需要修改的目标版本之前的版本 ID - 第一个版本:
git rebase -i --root
相关参考
Footnotes
-
stackoverflow.com/a/14630424 Edit the root commit in Git? ↩