修改 Git 提交记录的作者名和邮箱
最近在使用 Git 时,遇到了一个需求:修改某些提交记录中的提交名和邮箱。由于提交时误用了错误的姓名和邮箱,历史记录中的几次提交需要更新。发现使用 git rebase 结合 git commit --amend 是一种比较优雅的方式,可以灵活修改历史记录中的提交名和邮箱。
步骤记录
-
查看提交历史
首先,使用git log --oneline
查看了提交历史,找出需要修改的提交。例如,我发现最近的 3 次提交中,有 2 次提交信息需要修改。具体的命令如下:
git log --oneline
修改最近的 3 次提交中的第 1 次和第 3 次(可以通过 hash 来查看哪些提交记录)。 -
进入交互式 rebase
使用git rebase -i
进入交互式 rebase 模式,可以选择我想修改的提交。在这里,我选择了最近的 3 次提交:
git rebase -i HEAD~3
编辑器会打开一个列表,显示最近的 3 次提交记录:
pick 123abc 提交信息 1
pick 456def 提交信息 2
pick 789ghi 提交信息 3
我把第 1 次和第 3 次提交的 pick 改成 edit,表示我要修改这两次提交的详细信息:
edit 123abc 提交信息 1
pick 456def 提交信息 2
edit 789ghi 提交信息 3
保存并退出编辑器。
-
修改作者名和邮箱
Git 会依次停在我标记为 edit 的提交上。首先,停在第 1 次提交,让我可以修改作者信息。然后使用了 git commit --amend 并指定新的作者名和邮箱:
git commit --amend --author="John Doe <[email protected]>"
这个命令修改了该提交的作者信息。然后我继续 rebase:
git rebase --continue
Git 继续处理下一个标记为 edit 的提交,到了第 3 次提交时,重复上述步骤,修改了作者信息:
git commit --amend --author="Jane Smith <[email protected]>"
再次运行git rebase --continue
,完成了所有修改。 -
推送到远程仓库
完成本地的提交记录修改后,还需要将修改推送到远程仓库。由于这些提交已经在远程仓库中,使用了强制推送来覆盖之前的记录:
git push --force
总结
通过 git rebase -i 和 git commit --amend --author,成功修改了指定提交记录的作者名和邮箱。
标签:git,记录,--,rebase,修改,提交,邮箱 From: https://www.cnblogs.com/fires/p/18470409