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

相关推荐
love530love14 小时前
Windows 多 Git 环境冲突:一个环境变量优先级引发的血案
人工智能·windows·git·环境变量·scoop
无限进步_17 小时前
面试题 02.04. 分割链表 - 题解与详细分析
c语言·开发语言·数据结构·git·链表·github·visual studio
甲枫叶1 天前
【claude】Claude Code正式引入Git Worktree原生支持:Agent全面实现并行独立工作
java·人工智能·git·python·ai编程
0xwang1 天前
Deepin25社区版修改Git编码
git
第七序章2 天前
【Linux学习笔记】git三板斧
linux·运维·服务器·笔记·git·学习
三无少女指南2 天前
开发者环境配置最佳实践:编辑器Cursor ,VS Code的上位体验实现 AI 与 WSL 联动
运维·c语言·数据库·windows·git·编辑器
Rhystt2 天前
furryCTF 题解|Web方向|保姆级详解|固若金汤、DeepSleep
git·python·安全·web安全·网络安全
头发那是一根不剩了2 天前
Git 常用命令
git
x-cmd2 天前
[x-cmd] x git - Git 命令增强工具
git·终端·命令行·x-cmd
程序员果子2 天前
Git从零到远程协作:手把手实战指南
git