做一个项目,做了两周了发现为什么github上我的commit是空白。人都傻了
一看原来本地git的邮箱和用户名和github上的不一样。
感觉完了,因为这个评分是根据每个人的提交代码和commit次数来决定的。
百度之后官网有这个教程,可以修改历史提交记录 changing-author-info
https://help.github.com/en/articles/changing-author-info
可能需要梯子
为改变已经存在的 commit 的用户名和/或邮箱地址,你必须重写你 Git repo 的整个历史。
警告:这种行为对你的 repo 的历史具有破坏性。如果你的 repo 是与他人协同工作的,重写已发布的历史是一种不好的习惯。仅限紧急情况执行该操作。
使用脚本改变你 repo 的 Git 历史
我们写了一段能把 commit 作者旧的邮箱地址修改为正确用户名和邮箱的脚本。
注意:执行这段脚本会重写 repo 所有协作者的历史。完成以下操作后,任何 fork 或 clone 的人必须获取重写后的历史并把所有本地修改 rebase 入重写后的历史中。
在执行这段脚本前,你需要准备的信息:
欲修改的旧的邮箱地址
正确的用户名和邮箱地址
1.打开终端(Mac 或 Linux 用户)或命令行(Windows 用户)。
2.创建一个你的 repo 的全新裸 clone (repo.git 替换为你的项目,下同)
git clone --bare https://github.com/user/repo.git
cd repo.git
3.复制粘贴脚本,并根据你的信息修改以下变量:
OLD_EMAIL
CORRECT_NAME
CORRECT_EMAIL
脚本:
#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="your-old-email@example.com"
CORRECT_NAME="Your Correct Name"
CORRECT_EMAIL="your-correct-email@example.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
4.按 Enter 执行脚本。
5.查看新 Git 历史有没有错误。
6.把正确历史 push 到 Github:(push 有困难时记得修改 DNS 或者搭梯子)
git push --force --tags origin 'refs/heads/*'
7.清除临时 clone。
cd ..
rm -rf repo.git
改完了,整个人又好起来了