git 修改提交历史记录中的用户名

公司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,然后重新执行即可

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容