文档首页/ 代码托管 CodeArts Repo/ 常见问题/ 仓库使用/ 如何修改历史提交信息?
更新时间:2023-09-06 GMT+08:00

如何修改历史提交信息?

问题现象

本地Commit时的提交信息有误,出现如下报错。

原因分析

提示信息报错:message of commit,后面跟着一串由数字和小写字母组成的长达40位的字符串。这个字符串代表着这次提交的message填写有误。

即填写错误提交commit ID:1fbd34f77d1ddb73b73b84b878fd9edbece711f5。不符合提交规则:^\[maven-release-plugin\]|【问题单号or需求单号】\s*.+\W【修改描述】\s*.+\W【修改原因】\s*.+\W【模块】\s*.+\W【修改人】\s*.+\W【审核人】\s*.+

解决方案

  • 您可执行如下操作修改最新一次书写错误的提交记录信息:
    1. 在本地代码工作空间的根目录,即有.git隐藏文件夹的这一层级,右键选择git bash here打开git bash界面。

    2. 执行如下命令查找最新一次提交记录信息。
      git log

    3. 执行如下命令,进入vi文本编辑器界面。
      git commit --amend
    4. 输入git commit --amend -m ',输入第一行信息,回车再输入第二行信息,依次类推,在最后一行末尾加上另一个单引号,回车即可修改成功。

  • 您可执行如下操作修改非最新一次书写错误的提交记录信息:
    1. 在git bush界面中执行如下命令,查找错误的提交记录。
      git log

    2. 执行如下命令,回退到之前的提交记录。
      git reset --hard commitID

      如执行如下命令:

      git reset --hard 1fbd34f77d1ddb73b73b84b878fd9edbece711f5

    3. 参考“修改最新一次提交记录message书写错误中23”,修改之前的提交记录,回车保存。
    4. 找到自己提交的记录,执行cherry-pick。

      若author是自己,且不含merge操作,则可进行cherry-pick操作。

      如下图所示,绿框中的代表是可以操作cherry-pick的,红框内的不可操作cherry-pick。

    5. 执行如下命令挑分支。
      git cherry-pick commitID

      如commitID为62c6ac5bab09bb450007bb9996177ee711c7e2fb。

      git cherry-pick 62c6ac5bab09bb450007bb9996177ee711c7e2fb

      1. 如果错误信息的提交先前已经push入个人库,需要进行强制推送,即git push -f。
      2. 如果错误信息的提交先前未提交成功,直接git push即可。
      3. 如果错误信息不是由自己引入,且错误的提交已经合入进主库,那么无需修改,直接将个人库的提交规则临时去掉,推进入库即可。