1、Git(Git)

2、修改Git本地提交历史中的邮箱地址

使用 git rebase 命令进行交互式重置。
具体步骤如下:(https://git-scm.com/docs/git-rebase)
1、查看提交历史: 使用 git log 命令列出提交历史,找到您要修改的提交及其哈希值。
git log或者,如果您知道大致的提交范围,可以使用 -n 参数限制显示最近的几条提交:
// 获取最近5次的Git提交记录
git log -n 5例如:
2、启动交互式重置: 使用 git rebase -i 进入交互式变基模式。指定您要修改的第一个提交的前一个提交哈希。
// commit-hash 的值为log中的commit后的hash值
git rebase -i <commit-hash>其中 <commit-hash> 是您要修改的最早的提交的父提交哈希。
例:如下图中的commit 后的hash值,若要修改前10条的邮箱数据,则取第11条的hash值
3、编辑提交列表: Git会打开一个文本编辑器,显示提交列表。每一行代表一个提交,以 pick 开头。将您要修改的提交行前的 pick 改为 edit,保存并关闭编辑器。
例:会打开一个Vim编辑器
输入 i :进行编辑
输入 :wq 进行保存退出
输入 :q! 强制不保存退出
4、逐个修改提交和继续: Git会暂停在您标记为 edit 的第一个提交处。此时,您可以使用 git commit --amend 命令来修改提交信息,包括提交邮箱:
// 保持原提交名 新邮箱
git commit --amend --author="Original Author Name <new.author.email@example.com>"// 保持新提交明,新邮箱
git commit --amend --author="newCommitName <new.author.email@example.com>"将 Original Author Name 保留为原提交人的名字,将 new.author.email@example.com 替换为您想要的新邮箱地址。
执行完上面命令之后,继续执行下方命令
git rebase --continue重复步骤4 ,直到所有需要修改的提交都被更新。
当成功时会出现:
Successfully rebased and updated refs/heads/***************************************
5、完成重置: 当所有选定的提交都已更新,Git会自动完成变基过程。
注意:
如果是一个人开发的话,那推送基本没问题,如果是多人开发,此时推送可能会出现问题需要使用以下命令继续推送
git push --force origin 分支名
3、特别注意:
在多人开发中,如果要进行修改提交邮箱操作,请务必谨慎操作,特别是在多人协作的环境中,并事先取得团队成员的理解和支持。请一定核对并做好准备:
- 确保您有足够的权限对本地Git仓库进行此类修改。
- 确认您的团队或项目允许修改本地提交历史。在某些情况下,尤其是公共仓库,修改历史可能不被接受。
- 备份您的工作区,以防万一。


