Git 修改提交历史中的指定信息
# Git 修改提交历史中的指定信息
# 一. 使用 rebase
如图,红圈中提交的用户名及邮箱是需要改的,则需要复制 需要改的提交记录的上一个记录 hashcode
,在本例中就是 1c364e11588b2b44466af15b020d741d3460ef83
$ git rebase -i 1c364e11588b2b44466af15b020d741d3460ef83
1
- 也可以用
HEAD~步长
的方式,但如果提交记录很久远的话,算步长就不太现实,所以更推荐hashcode
写法
$ git rebase -i HEAD~1
1
- 如果整个仓库只有 1 次提交,即 root 提交,则需要用如下命令
$ git rebase -i --root
1
# 二. 此时进入编辑界面
记录着 commit 的信息
# 三. 修改需要修改的 commit
需要修改那个 commit 就在首行将 pick
改为 edit
,在本例中则需要改第一行
# 四. 保存退出
wq
保存退出之后会返回如下内容
# 五. 修改用户名及邮箱
$ git commit --amend --reset-author
1
命令执行后会进入提交日志的编辑界面,我们仅需要修改用户名及邮箱,不需要修改提交日志信息,wq
保存退出即可
接下来此次提交的作者及邮箱会被修改为 --local
级别的用户名及邮箱,若该级别没有设置,则会使用 --global
级别的用户名及邮箱
- 如果不想使用已经设置好的用户名及邮箱的话,也可以手动指定用户名及邮箱:
$ git commit --amend --author="otheruser <otheremail@qq.com>"
1
# 六. 结束 rebase
$ git rebase --continue
1
再查看提交记录,可以看到提交的作者及邮箱已经改正了。
# 七. 同步到远程仓库上
$ git push -f origin master
1
上次更新: 2022/07/01, 17:34:19