赞
踩
今天一直在github上面commit代码,但是github中并没有显示自己的contribution(没有绿色的格子),全是空白,网上一查是因为邮箱不一致导致的,难道以前的contribution就无法弥补回来了吗?这篇文章告诉你解决方法。
哪些条件下,才符合Github的contribution?官方的解释如下
这里只针对第一条“进行Commits的用户、邮箱不是你的Github帐号的用户名和邮箱。”的弥补方式。
1、将本地开发环境的github的用户名和邮箱改为自己github的。
在本地的项目中进入git指向如下命令,修改邮箱
git config --global user.email "你的邮件地址"
git config --global user.name "你的Github用户名"
2、创建存储库的全新裸克隆:
git clone --bare https://github.com/user/my-repo.git
cd my-repo.git
3、在git bash执行以下两个脚本
按照自己错误的方式,选择下方的命令进行运行
git filter-branch --env-filter '
OLD_EMAIL="错误的邮箱"
CORRECT_NAME="github用户名"
CORRECT_EMAIL="github邮箱"
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 filter-branch --env-filter '
OLD_NAME="错误的用户名"
CORRECT_NAME="github用户名"
CORRECT_EMAIL="github邮箱"
if [ "$GIT_COMMITTER_NAME" = "$OLD_NAME" ]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_NAME" = "$OLD_NAME" ]
then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags;
4、执行完后,查看历史记录是否错误
git log
5、将更正的历史记录推送到GitHub
强制push所有的分支
git push --force --tags origin 'refs/heads/*'
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。