git rebase修改已提交的commit信息

3,073 阅读1分钟

概述

在实际工作中,偶尔会因为手欠,在提交commit时,添加了非常简短的commit message,如opt。由于本地代码规则限制,在提交pr并申请merge到origin的master时,系统会提示某个commit的message因过短而无法进行merge操作。当遇到这种窘境时,如何解决?本文简单介绍如何通过git rebase操作来修改已提交的commit message。

解决

当前的commit记录,可当作原始数据

image.png
  1. 修改最后一次提交的 commit信息
% git commit --amend --message='delte file to update commit msg'

[main 2d9761a] delte file to update commit msg

 Date: Tue Dec 27 16:22:30 2022 +0800

 1 file changed, 2 deletions(-)

 delete mode 100644 1.txt
image.png
  1. 修改历史提交的 commit 信息

操作步骤:

  • git rebase -i 列出 commit 列表
  • 找到需要修改的 commit 记录,把 pick 修改为 edite:wq 保存退出
  • 修改 commit 的具体信息git commit --amend,保存并继续下一条git rebase --continue,直到全部完成
  • 中间也可跳过或退出git rebase (--skip | --abort)

例如,尝试修改commit id 为 ‘9b9133f’ 的message信息,具体操作如下。

  • 通过 git rebase 至 待修改的commit message的前一个commit ID。
  • git rebase -i 6be1bd9
image.png
  • 找到要修改的commit记录,把 pick 修改为 e:wq 保存退出
image.png
  • 修改 commit 的具体信息git commit --amend,系统会弹出一个交互的窗口,修改结束后,:wq 保存退出.
image.png
  • 继续下一条git rebase --continue,直到全部完成.
image.png