背景
在工作中咱们常常会被要求应用特定的账号和邮箱提交代码,但有时 git 配置的谬误,导致提交了很多谬误的 commit,push 被拦挡。这时候咱们能够 git 指令来批改曾经提交的 commit,来解决问题。
指令解说
- git log 查看 commit id
- git rebase -i < 最早 commit> 从新设置基准线
- git commit –amend –author=”Author Name mailto:email@address.com” –no-edit 来批改 commit
- git rebase –continue 挪动到下个 commit 作为基准线
例子
如以后历史为 A-B-C(HEAD),我想批改 B 和 C,这两个 commit 的作者。
-
git rebase -i A
- 如果想改 A 则应用 git rebase -i –root
- B 和 C 的 commit,批改 pick 到 edit。
- 退出编辑器。按 ESC,输出:wq。保留批改。
- 当初你曾经开始能够批改,此时以后 commit 为 B。
- git commit –amend –author=”Author Name mailto:email@address.com” 批改 B 的提交。
- git rebase –continue 定位到 C
- git commit –amend –author=”Author Name mailto:email@address.com” 批改 C 的提交。
- 批改已实现。
- git push -f 提交代码,功败垂成。