git 强制更改错误的git-config-email和name

265 阅读1分钟

背景

场景描述: 重新配置电脑之后,提交了git,邮箱发生错误。

git log  # 查看日志
git reset 版本 # 回到之前的版本,版本回退
git config --global user.name 'username' # 更改用户名
git config user.name # 查看用户名
git config --global user.email 'email # 更改邮箱
git config user.email # 查看邮箱

 

解决方案

之前git提交记录调整:

在本地创建个rename.sh

#!/bin/sh
#更改提交中所有邮箱为OLD_EMAIL的为新的用户名和新的邮箱
git filter-branch --env-filter '
OLD_EMAIL="XXX@126.com"
CORRECT_NAME="XXXXXX"
CORRECT_EMAIL="XXX@126.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

重要提示:

我这边都是改的我的,这个判断的条件可以按需要更改!!!

 

运行步骤:

1.命令行执行rename.sh

2.命令行执行git push origin master --force(会把master分支的内容强行重写)

3.查看效果即可