GIt如何修改某一个版本记录的提交信息(commit message)?

233 阅读2分钟

GIt如何修改某一个版本记录的提交信息(commit message)?

回到顶部

问题背景

在使用 git 提交版本的过程中,发现之前的版本的提交信息有问题,需要修改,一时不知道怎么解决。通过查阅网络资料1,发现可以用 git commit --amend 命令修复,但是这个命令只能修改刚刚提交的版本。 后面后发现命令 git rebase -i <versionID> 可以修改指定版本的提交信息。但是这个命令只能修改非 root的版本,换句话,要修改的版本需要有parent版本。而笔者需要处理的版本恰好是 第一个版本。 继续查阅资料2,经过验证,发现可以使用 git rebase -i --root 修改第一个版本(root)的提交信息。

回到顶部

问题分析

目的是修改某个版本的提交信息,经过分析,分为三类:

  1. 刚刚提交的版本
  2. 中间某个版本
  3. 第一个版本

回到顶部

问题解决

回到最初的问题,想要修改第一个版本的提交信息,详细操作截图可以参考这 个教程

操作步骤

  1. 命令行执行 git rebase -i --root 会进入 vim 模式,默认显示的全部的版本提交信息之前应该是 pick 关键字修饰,将需要修改版本提交信息的版本前面的 pick 改为 reword,表示要修改这个版本提交信息,修改好后,退出 vim
  2. 上一步退出 vim 后,会自动进入到一个页面,此时可以修改版本提交信息,修改好,继续退出 vim
  3. 如果操作成功,则会显示 Successfully rebased and updated refs/heads/master.
  4. 此时需要的修改的版本的提交信息就会变为修改后的信息

对于这类问题——修改提交版本信息(commit message)可分 3 种情况

  1. 刚刚提交的版本:git commit --amend
  2. 中间某个版本: git rebase -i <versionID> versionID是需要修改的目标版本之前的版本 ID
  3. 第一个版本:git rebase -i --root

回到顶部

相关参考

Footnotes

  1. Git 如何修改历史 Commit message - 知乎

  2. stackoverflow.com/a/14630424 Edit the root commit in Git?