批量修改Git历史commit信息中的username

之前很长一段时间GitHub上的提交都在使用工作账户, 导致私人仓库中的提交者比较混乱. 在StackOver里面找到了一个bash脚本可以批量修改username, 在这里记录一下.

修改的步骤一共两步:

  1. 执行修改脚本
  2. 将本地修改同步到Git服务器

首先我们来看脚本:

bash 复制代码
#!/bin/sh

git filter-branch -f --env-filter '
OLD_EMAIL="your-old@email.com"
CORRECT_NAME="correct-git-username"
CORRECT_EMAIL="your-new@email.com"
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

将脚本中的OLD_EMAIL, CORRECT_NAMECORRECT_EMAIL按照需要修改, 并将改脚本放到需要修改的项目的根目录下执行.

查看打印信息如果显示修改成功, 则执行git push -f即可将修改内容同步到Git服务器上.

如果想要了解更多关于Git的使用技巧, 可以查看我的技术博客-Git栏目.

相关推荐
尔嵘33 分钟前
git操作
大数据·git·elasticsearch
大柏怎么被偷了3 小时前
【Git】企业级开发模型
git
Garfield20053 小时前
Git 分支拓扑实践
git·拓扑
DKNG3 小时前
【Windows Host】 hosts配置增加访问github流畅度
人工智能·git·github
一个很帅的帅哥5 小时前
git命令大全
大数据·git·elasticsearch
凯子坚持 c6 小时前
Git 远程仓库操作与深度进阶指南
git
勇敢牛牛_6 小时前
RustRover 2025.3 在WSL中GIT操作十分缓慢的问题
git·rust·rustrover
编程小白gogogo7 小时前
创建git仓库并推送苍穹外卖初始项目
git
cat_milk7 小时前
【git】git的基础使用二
git
XiaoHamao8 小时前
Git 核心分区全解析
git