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

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

修改的步骤一共两步:

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

首先我们来看脚本:

bash 复制代码
#!/bin/sh

git filter-branch -f --env-filter '
OLD_EMAIL="[email protected]"
CORRECT_NAME="correct-git-username"
CORRECT_EMAIL="[email protected]"
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栏目.

相关推荐
柚个朵朵2 小时前
IDEA中使用Git
java·git·spring
我是哈哈hh2 小时前
【Git】初始Git及入门命令行
git·gitee·github·版本控制器
lifejump2 小时前
Git命令(Gitee)
git·gitee
极小狐2 小时前
如何创建并使用极狐GitLab 部署令牌?
运维·git·ssh·gitlab·github
Kusunoki_D3 小时前
Win11 配置 Git 绑定 Github 账号的方法与问题汇总
git·github
Justice link5 小时前
Git和Gitlab的部署和操作
git
极小狐5 小时前
极狐GitLab 的合并请求部件能干什么?
运维·git·安全·gitlab·极狐gitlab
vortex55 小时前
Git常用命令简明教程
git
YoungHong199211 小时前
Git Bisect 使用指南:高效定位引入 Bug 的提交
git·bug
极小狐14 小时前
极狐GitLab 的压缩和合并是什么?
运维·git·ssh·gitlab·github