背景
在工作中我们经常会被要求使用特定的账号和邮箱提交代码,但有时git配置的错误,导致提交了很多错误的commit,push被拦截。这时候我们可以git指令来修改已经提交的commit,来解决问题。
指令讲解
git log
查看commit idgit rebase -i <最早commit>
重新设置基准线git commit --amend --author="Author Name <email@address.com>"
来修改commit`git rebase --continue
移动到下个commit作为基准线
例子
如当前历史为 A-B-C(HEAD),我想修改B和C,这两个commit的作者。
git rebase -i A
- 如果想改A则使用
git rebase -i --root
- 如果想改A则使用
- pick 改为 edit。按ESC,输入:wq。保存修改。
- 现在你已经开始可以修改,此时当前commit为B。
git commit --amend --author="Author Name <email@address.com>"
修改B的提交。git rebase --continue
定位到Cgit commit --amend --author="Author Name <email@address.com>"
修改C的提交。git rebase --continue
修改已完成。git push -f
提交代码,大功告成。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。