如何修改历史提交信息?
问题现象
本地Commit时的提交信息有误,出现如下报错。
原因分析
提示信息报错:message of commit,后面跟着一串由数字和小写字母组成的长达40位的字符串。这个字符串代表着这次提交的message填写有误。
即填写错误提交commit ID:1fbd34f77d1ddb73b73b84b878fd9edbece711f5。不符合提交规则:^\[maven-release-plugin\]|【问题单号or需求单号】\s*.+\W【修改描述】\s*.+\W【修改原因】\s*.+\W【模块】\s*.+\W【修改人】\s*.+\W【审核人】\s*.+
解决方案
- 若修改非最新一次书写错误的提交记录信息,您可执行如下操作:
- 在git bash界面中执行如下命令,查找错误的提交记录。
git log
- 执行如下命令,回退到之前的提交记录。
git reset --hard commitID
如执行如下命令:
git reset --hard 1fbd34f77d1ddb73b73b84b878fd9edbece711f5
- 参考“修改最新一次提交记录message书写错误中2或3”,修改之前的提交记录,回车保存。
- 找到自己提交的记录,执行cherry-pick。
若提交记录中显示提交人是自己,且未进行过合入操作,则可进行cherry-pick操作。
如下图所示,绿框中的代表是可以操作cherry-pick的,红框内的不可操作cherry-pick。
- 执行如下命令挑分支。
git cherry-pick commitID
如commitID为62c6ac5bab09bb450007bb9996177ee711c7e2fb。
git cherry-pick 62c6ac5bab09bb450007bb9996177ee711c7e2fb
- 如果错误信息的提交已经合入代码托管仓库,则需要执行git push -f命令进行强制推送。
- 如果错误信息的提交记录显示未提交成功,则直接执行git push推送入库。
- 如果错误信息不是由自己引入,且错误的信息已经提交且合入代码托管仓库,则无需修改,直接删除代码托管仓库的提交规则,接执行git push推送入库。
- 在git bash界面中执行如下命令,查找错误的提交记录。
仓库使用 所有常见问题
more