批量修改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栏目.

相关推荐
旅者时光3 小时前
Git使用基础
git
Clownorange3 小时前
git安装和配置
git
网安2311 013 小时前
OWASP ZAP 安全工具深度剖析:从环境搭建到架构复原的结对编程实践
git
ShineWinsu6 小时前
对于Linux:git版本控制器和cgdb调试器的解析
linux·c语言·git·gitee·github·调试·cgdb
php_kevlin8 小时前
git提交限制规范
大数据·git·elasticsearch
安大小万8 小时前
Git 常用命令终极指南:从入门到进阶
git
摇滚侠8 小时前
GIT 代码冲突 git pull 和 git pull rebase 的区别,保持提交记录的线性整齐
git
vistaup21 小时前
windows git 更新当前目录下所有的文件(非递归)
windows·git
王码码20351 天前
Flutter for OpenHarmony:Flutter 三方库 algoliasearch 毫秒级云端搜索体验(云原生搜索引擎)
android·前端·git·flutter·搜索引擎·云原生·harmonyos
Irene19911 天前
Git 命令汇总表(基于一次完整的 Git 实战经验整理,涵盖从安装配置到日常开发、问题排查的所有常用命令)
git·常用命令