git修改历史commit信息

144 阅读1分钟

在开发过程中,commit的message可能填写的不合适,或者想删除一些敏感信息,这时候就需要修改最近一次提交的commit信息或者修改历史的commit信息。

修改最近一条commit信息

执行下面的命令,会弹出一个vim的编辑窗口,修改第一行的message信息,:wq保存退出即可。

git commit --amend

image.png

修改历史commit信息

先查看提交记录

git log -5

假如我们看到有5条记录,commit1 - commit5代表的都是commit hash, commit5为最新提交,commit1为最老的提交。

  • commit5
  • commit4
  • commit3
  • commit2
  • commit1

我们想修改commit3的message,需要找到commit3之前的那个提交既commit2,并执行下面代码

git rebase -i commit2

此时默认会打开一个vim弹窗

image.png 然后将commit3所在行的pick修改为edit:wq保存退出。 然后执行

git rebase --continue

即可修改成功。

PS: 修改历史commit信息这种方式会导致其后的提交hash都会发生变化。出现需要git pull的情况,然后会导致修改前和修改后的commit并存的情况,目前还没有找到解决办法,期待大佬提供方案。