Git 通过 rebase 修改本地和远程的历史提交记录

修改本地

!!! 要确定本地文件没有被修改了才能开始下面的步骤

1
git status

仅修改上次提交

1
git commit --amend --author="xx <xx@xx.com>"

执行完后会弹出交互,可以对当此提交信息进行更详细的修改。

修改历史的多次提交

1
git rebase -i HEAD~n

n:要修改多少条就改成多少

修改后 :wq 保存后会弹出一个交互,将需要修改的提交记录前的 pick 改成 e ,保存退出即可。

Git-rebase图

到此,会进入 rebase 交互状态,通过下面的命令进行修改和对修改进行确认。

1
2
3
4
# 修改
git commit --amend --author="xx <xx@xx.com>"
# 确认修改
git rebase --continue

循环执行这部分,直到所有需要修改的记录都已经完成,如下图:

Git-rebase-finish

以上,本地的提交记录皆修改完成。

更新到远程

1
2
3
4
## 拉取代码,如果确保本地是最新的可以不执行
git fetch
## 强制推送
git push --force-with-lease