平时的开发工作中,个人账号和公司账号有时会用混淆,甚至完成几个 commit 之后才发现 master 分支中的多个提交的用户是公司账户,因此需要修改历史提交记录的作者。此篇文章记录下相关操作流程。
开始前的共识
修改 Commit 的作者会使得其 MD5 值改变,任何引用该 MD5 的地方将会无法正常使用。
过程
先执行以下命令将本地仓库的作者设置为正确的值
git config --local --user.name "xxx"
git config --local --user.email "xxx"
假设 fake 分支中历史记录最初的一些 Commit 的作者是正确的,从某个 Commit 开始才出现了不正确的作者。历史记录中最后一个正确的提交的 MD5 是 dcd7008513006dfc06dea0bda2a2f73b2c0509d1
。执行命令
git rebase -i -p dcd7008513006dfc06dea0bda2a2f73b2c0509d1
将提交标记为edit
。然后一直执行以下命令,直到所有的提交都被设置为正确的作者
git commit --amend --reset-author
git rebase --continue
按照此方法正确地将部分提交的作者设置为正确值。