当我们换电脑后,使用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上就可以看到可以点击的用户名和头像。
评论(0)