公司git升级,导致原用户名不可用,本地的几次提交无法push代码,报错姓名不符合规范
第一种方法
合并以往的请求成一个请求
1、首先需要全局修改用户名
git config --global user.name "新的用户名"
2、将本地的提交历史撤销,重新提交即可。以下为撤销最近5次的提交,最近5次的修改代码变为已暂存,提交后即可成功push
git reset --soft HEAD~5
第二种方法
脚本处理,在git仓库根目录下创建rename.sh文件
rename.sh
#!/bin/sh
#更改提交中所有邮箱为OLD_EMAIL或用户名为OLD_NAME的为新的用户名和新的邮箱,注释部分的可以变更邮箱
# CORRECT_EMAIL="your-correct-email@example.com"
# OLD_EMAIL="yo.com"
# export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
# export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
git filter-branch --env-filter '
OLD_NAME="WB0000001"
CORRECT_NAME="gaowj"
if [ "$GIT_COMMITTER_NAME" = "$OLD_NAME" ]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
fi
if [ "$GIT_AUTHOR_NAME" = "$OLD_NAME" ]
then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
fi
' -f --tag-name-filter cat -- --branches --tags #-f为强行覆盖
#取消下面的#注释,将自动强行推送所有修改到主分支
#git push origin master --force
输入./rename.sh回车即可
如果 Permission denied,给权限sudo chmod 777 rename.sh,然后重新执行即可
网友评论