You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Git历史提交关联的邮箱地址?

修改Git历史邮箱以同步GitHub贡献图表

一、前期准备

  • 克隆仓库的裸版本(避免本地工作区冲突):git clone --bare https://github.com/你的用户名/你的仓库名.git
  • 进入克隆的裸仓库目录:cd 你的仓库名.git

二、批量修改历史提交信息

创建一个bash脚本(Windows用户用Git Bash运行),把下面的旧邮箱、新邮箱、用户名替换成你自己的信息:

#!/bin/sh

git filter-branch --env-filter '
OLD_EMAIL="你的旧邮箱地址"
CORRECT_NAME="你的GitHub用户名"
CORRECT_EMAIL="你的GitHub绑定邮箱"

if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags
  • 保存为change-history-email.sh,给脚本加执行权限:chmod +x change-history-email.sh
  • 运行脚本:./change-history-email.sh

三、强制覆盖远程仓库历史

脚本执行完后,把修改后的历史推送到远程:git push --force --tags origin 'refs/heads/*'

四、验证与后续注意事项

  • 回到本地原仓库,拉取更新:git fetch origin && git reset --hard origin/你的分支名
  • 检查提交历史:git log --pretty=format:"%an <%ae>",确认所有旧邮箱都已替换成新的
  • 重点提醒:强制推送会彻底覆盖远程仓库的历史,如果是多人协作仓库,必须提前跟团队成员沟通,让他们重新拉取代码,避免代码冲突
  • 确保新邮箱已经在GitHub账号中完成验证,不然修改后的提交不会被统计到贡献图表里

内容的提问来源于stack exchange,提问作者Muhammad Usama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 15:22:38