最近我修改了我gitee和github的用户名还有邮箱,所以需要对本地仓库配置的用户名和邮箱进行更改
本文首发于 慕雪的寒舍
1.命令
刚开始我使用的是如下命令
git config --global user.email "邮箱"
git config --global user.name "用户名"
但是很不辛,这个命令没有用,因为它是用来初始化你的git环境的,对已有的git仓库不起作用
但是我们在linux
下可以添加上另外一个参数来实现
git config --global --replace-all user.email "邮箱"
git config --global --replace-all user.name "用户名"
这样就修改成功了
这个命令在windows下似乎无法识别,会弹出git的命令行帮助
但是,修改成功后的提交,只对未来的提交有效;这里必须得吐槽一下gitee和github统计提交的不同之处
- gitee统计提交依据的是用户名+邮箱,只要有一个不对就无法统计
- github统计提交只依据邮箱,只要你邮箱对了,用户名是不管你的
所以要想让gitee的统计能生效,那就必须要修改之前所有提交信息中的用户名和邮箱
2.修改之前提交中的用户名和邮箱
参考博客
复制如下代码到一个本文编辑器里面,将内部的邮箱和用户信息修改
git filter-branch -f --env-filter '
OLD_EMAIL="原来的邮箱"
CORRECT_NAME="现在的名字"
CORRECT_EMAIL="现在的邮箱"
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
' --tag-name-filter cat -- --branches --tags
随后将其粘贴到git命令行中,回车执行
执行完毕,就能看到所有git提交的用户名和邮箱都修改成功了!接下来要做的就是强制提交
git push -f
强制提交了之后,之前显示不出来的信息和小绿点,现在也能正常显示了
如果用上面的命令修改失败的话,那就尝试执行下面的命令
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD
随后再重试上面的命令,应该就OK了