如何为已提交的Git commit修改邮箱以计入GitHub贡献统计
解决方法
修改单次最新提交
如果仅需要调整最近一次提交的关联邮箱,直接执行如下命令:git commit --amend --author="你的GitHub用户名 <你的GitHub绑定邮箱>" --no-edit
修改完成后如果已经推送过该提交到远程,执行git push -f强制推送更新即可。注意:多人协作仓库强制推送前请提前和协作者同步,避免冲突
修改仓库全部历史提交
如果需要批量调整所有历史提交的邮箱信息,使用git自带的filter-branch工具完成批量替换:
- 先替换下方命令中的三个参数为你自己的对应信息:
OLD_EMAIL:之前提交时使用的本地邮箱,比如示例中的jane@computer.localCORRECT_NAME:你的GitHub账号用户名CORRECT_EMAIL:绑定到你GitHub账号的有效邮箱
- 在本地仓库根目录执行如下命令:
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
- 本地历史提交修改完成后,执行如下命令强制推送所有更新到远程仓库:
git push --force --tags origin 'refs/heads/*'
后续避免同类问题
执行全局git配置,固定默认提交身份信息,后续所有本地提交都会默认使用该配置,不会再生成本地格式邮箱:git config --global user.name "你的GitHub用户名"git config --global user.email "你的GitHub绑定邮箱"
内容的提问来源于stack exchange,提问作者notADevYet
相关产品推荐
相关产品推荐

