git 更改现有提交记录中的用户名称和/或电子邮件地址

更改作者信息

git要修改历史历史记录中所有提交用户名称和/或电子邮件地址,可以在仓库根目录下执行如下操作:
①新建如下脚本rename.sh
rename.sh

#!/bin/sh
#更改提交中所有邮箱为OLD_EMAIL的为新的用户名和新的邮箱
git filter-branch --env-filter '
OLD_EMAIL="your-old-email@example.com"
CORRECT_NAME="Your Correct Name"
CORRECT_EMAIL="your-correct-email@example.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
' -f --tag-name-filter cat -- --branches --tags    #-f为强行覆盖
#取消下面的#注释,将自动强行推送所有修改到主分支
#git push origin master --force

②执行一下命令赋予超级权限(如果文件权限不够)

sudo chmod 777 rename.sh

③执行rename.sh脚本

./rename.sh

这样可以用gitk . 看到所有的提交记录用户信息都被修改了;
④执行–force的推送命令,强行推送到服务器

git push origin master --force

官方参考文档:https://help.github.com/en/github/using-git/changing-author-info

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值