前言
当我们提交git commit之后发现邮箱和用户信息错误,需要进行修改。比如,邮箱提交的是公司邮箱,而非个人邮箱
如果代码具有保护,比如master分支,不允许强制信息修改即git push -f,那么此方法无效,仅限于私人仓库使用
步骤
- 假设我们要修改2条commit的提交信息,我们找到这2条commit前一个的commitId,复制
- 回到命令行,执行
git rebase -i commitId # commitId就是上一步复制的
- 这时候,git会自动调用配置好的编辑器,打开一个新界面,然后将要修改commit记录前面的pick 改成 edit
pick --> edit
- 修改之后,保存关闭退出,出现以下结果
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
- 这时候我们可以通过
git commit --amend来畅快修改用户信息了,操作如下
git commit --amend --author="zhangshan <zhangshan@qq.com>" --no-edit # <>内部是邮箱且<>不能省
继续执行
git rebase --continue
- 由于是修改2条commit的用户信息,那么第5步执行2次即可
- 最后,执行以下命令,将篡改历史记录后的结果同步到远程服务器
git push --force
解决!!!