批量修改历史commit的用户名user.name邮箱user.email
2024-10-21 05:32:38
配置当前的用户名邮箱可以当前项目配置或者全局配置。
仅当前项目配置:
git config user.name 'your-user-name'
git config user.email 'your-user-email'
全局配置:
git config --global user.name 'your-user-name'
git config --global user.email 'your-user-email'
新建shell脚本 change-email-name.sh 内容如下:
#!/bin/sh git filter-branch --env-filter ' OLD_EMAIL="your-old-email"
NEW_NAME="your-new-name"
NEW_EMAIL="your-new-email" if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_COMMITTER_NAME="$NEW_NAME"
export GIT_COMMITTER_EMAIL="$NEW_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_AUTHOR_NAME="$NEW_NAME"
export GIT_AUTHOR_EMAIL="$NEW_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags
将脚本放到项目根目录下,执行脚本:
./change-email-name.sh
如果执行失败,执行以下代码后再执行脚本:
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD
然后强行覆盖仓库
git push origin --force --all
最新文章
- 报错注入分析之Extractvalue分析
- mysql5.7安装
- iOS开发之记录用户登录状态
- JVM内存结构之二--新生代及新生代里的两个Survivor区(下一轮S0与S1交换角色,如此循环往复)、常见调优参数
- struts.xml什么时候加载
- namespace的用法
- UI3_UITableViewDelete(多选)
- 【BZOJ】【3524】【POI2014】Couriers
- 【转】linux设备驱动之MMC SD卡——核心层简单分析
- iOS开发之C语言函数库
- 利用Sinopia搭建私有npm包
- Chrome调试工具developer tool技巧
- 使用JavaScript循环嵌套解决各种图形
- Linux之23个重要命令
- mysql数据库基本操作
- ssh反向代理
- c# 字符串中多个连续空格转为一个空格
- Python不能用于大型项目?人们对Python的十大误解
- java 随机抽取案例,不重复抽取
- Hanlp在java中文分词中的使用介绍