Git 修改历史提交记录中的用户名
背景
之间git提交时的用户名不对,但已经提交了4个commit了,所以需要修改历史记录中的用户名.
方案
使用git rebase
git rebase会把基于 rebase的版本后的commit取消掉,并临时保存为path到.git/reabase目录中,然后把当前分支更新到rebase的分支,最后把你修改的成为path的版本以补丁的形式应用到rebase的版本上.
操作
这里把要rebase到4个commit之前的一个版本
1 | [Fri Jul 26 talen@tp-arch-tianfei capacity]$ git rebase -i HEAD~5 |
1 | Stopped at 4ac3916... X0 |
vi修改X1-X4的pick为edit,X0是rebase的版本,wq:退出
1 | [Fri Jul 26 talen@tp-arch-tianfei capacity]$ git commit --amend --author="tianfei.hao <tianfei.hao@example.com>" --no-edit |
修改正确的用户名及邮箱
1 | [Fri Jul 26 talen@tp-arch-tianfei capacity]$ git rebase --continue |
强制提交操作