如何修改 commit 的邮箱和提交人信息

场景描述

当我们的某次 commit 中的邮箱和提交人不符合提交规范时(比如:用个人邮箱的配置提交到了公司的项目中等),我们需要修改这次 commit 的邮箱和提交人信息,需修改的 commit 可能是如下三种情形:

  • 需修改的 commit 是当前分支最新 commit
  • 需修改的 commit 是当前分支某历史 commit
  • 需修改的 commit 是当前分支的第一个 commit

解决方式

我们一般使用 git commit --amend 命令来修改 commit 的相关信息,如果要修改历史提交,需要结合 git rebase 命令一起使用

我们通过 git commit --amend --help 查看下 git commit --amend 都有哪些额外参数:

如何修改 commit 的邮箱和提交人信息_第1张图片

所以,上述三种情形下的解决方式如下(git rebase 相关的操作解释可参考笔者这篇文档:如何修改第一个 commit 的提交信息):

需修改的 commit 场景 操作命令
commit 是最新 commit git commit --amend --author="newUser" --no-edit
commit 是某历史 commit git rebase -i
git commit --amend --author="newUser" --no-edit
commit 是第一个 commit git rebase -i --root
git commit --amend --author="newUser" --no-edit

修改第一个 commit 邮箱和提交人实操演示

git log 显示提交信息如下:

如何修改 commit 的邮箱和提交人信息_第2张图片

git rebase -i --root 操作显示如下:

如何修改 commit 的邮箱和提交人信息_第3张图片

我们将左上角的 pick 改为 e, :wq 保存退出后显示如下:

如何修改 commit 的邮箱和提交人信息_第4张图片

我们将邮箱和提交人改为 xiaohugit commit --amend --author="xiaohu" --no-edit 执行后,显示如下:

如何修改 commit 的邮箱和提交人信息_第5张图片

git status 显示如下:

如何修改 commit 的邮箱和提交人信息_第6张图片

按照提示,进行 git rebase --continue 操作,显示如下:

git log 重新显示如下,邮箱和提交人信息已改变:

如何修改 commit 的邮箱和提交人信息_第7张图片

注意事项

如需将修改信息同步到远端仓库,可使用 git push -f 命令进行强制同步,该操作会覆盖远端分支的提交历史,请自行确认操作风险

你可能感兴趣的:(如何修改 commit 的邮箱和提交人信息)