背景
场景描述: 重新配置电脑之后,提交了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.查看效果即可