首页
Preview

Git修改已经提交的user和email

当我们换电脑后,使用git去提交代码,很有可能就和现有的github的用户名和邮箱不一致。

这样在githup的提交记录里面看到的用户名是没办法点击和跳转到个人的仓库里面的。

对应已经提交的记录,我们需要修改里面的邮箱和用户名。

  • 检查本地的提交历史
git log
  • 查看本地用户名和邮箱
查看全局邮箱和用户名
git config --global user.name
git config --global user.email

查看当前项目的邮箱和用户名(需要在项目根目录下)
git config user.name
git config user.email
  • 设置用户名和邮箱
修改全局的邮箱和用户名:
git config --global user.name "xxxxuser"
git config --global user.email "xxxx@xx.com"

如果我们只想把当前项目的邮箱和用户进行更改(需要在项目根目录下):
git config user.name "xxxxuser"
git config user.email "xxxx@xx.com"
  • 创建脚本chang.sh

将OLD_EMAIL修改为已经提交的记录邮箱地址

NEW_NAME和NEW_EMAIL修改为githup上对应的邮箱和用户名

#!/bin/sh

git filter-branch --env-filter '

OLD_EMAIL="old@xxx.com"
NEW_NAME="new-user"
NEW_EMAIL="new@xxx.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
' --tag-name-filter cat -- --branches --tags
  • 执行脚本
chmod +x chang.sh

bash chang.sh
  • 再次检查
git log
  • 如果失败执行
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD

再次执行脚本

  • 确认没问题将本地修改推到githup
git push origin --force --all

在githup上就可以看到可以点击的用户名和头像。

原文: https://zhuanlan.zhihu.com/p/437744406

版权声明:本文内容由TeHub注册用户自发贡献,版权归原作者所有,TeHub社区不拥有其著作权,亦不承担相应法律责任。 如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

点赞(0)
收藏(0)
无月至上
努力努力再努力

评论(0)

添加评论