git提交后个人资料下没显示commit贡献小绿点?【修改历史commit的author邮箱】

问题场景

已经git push origin并且成功push了,仓库里也出现了commit记录,但是在github个人主页却没有显示出小绿点。
page-img1

查看一下历史commit的提交作者是不是其他git用户:

1
git log

page-img2

若因commit的Author有错,先改对

git config全局配置和本地配置(当前仓库repo):
https://hengqu4.github.io/2023/07/17/git-config/

修改git的本地配置

1
2
git config user.name hengqu4
git config user.email 529914423@qq.com

修改git的全局配置

1
2
git config --global user.name hengqu4
git config --global user.email 529914423@qq.com

git rebase -i对历史提交进行处理

编辑最新的几次commit

发现近2次的commit的提交者Author不是自己,重新设置基准线,回退到2次之前:

1
git rebase -i HEAD~2

之后会自动进入 vi ,按下i键进入编辑模式;
page-img3
page-img4

把前缀从pick改为e或者edit
page-img5
编辑完后按下esc键退出编辑模式,再输入:wq!按下回车保存编辑并退出vi;
page-img6

此时回到了需要处理的commit。
page-img7

编辑历史提交中的某几次(包括第一次)的commit

如果是更新中间某几次的commit信息或者第一次commit的信息,可以输入git rebase -i --root回退到第一次提交。

1
git rebase -i --root

再在其中选择需要修改的commit,把它们的前缀从pick改为e,其他操作一样。

修改commit的Author

我们需要修改的是提交者Author,输入以下命令:

hengqu4是git的user.name
529914423@qq.com是git的user.email
这里请替换成你自己的名称和邮箱

1
git commit --amend --author "hengqu4 <529914423@qq.com>"

按下回车后进入vi模式,我们直接输入wq!+按下回车即可;
page-img8

输入命令进行到下一个需要处理的commit,也就是下一个我们之前把pick改为e的commit。

1
git rebase --continue

page-img9
之后一直重复上面2个命令,直到所有需要编辑的commit都处理过了

1
2
git commit --amend --author "hengqu4 <529914423@qq.com>"
git rebase --continue

当某次输入了git rebase --continue后,终端出现了成功变基并更新 refs/heads/...的提示时停止操作,意味着所有需要编辑的commit都处理过了。
page-imga

成功修改后push到远程仓库

为了验证是否历史commit编辑成功,可以输入git log查看最新的commit记录信息。
这里可以看到之前2次作者错误的commit已经被修正了:
page-imgb
上述操作只是更新了本地的commit信息,我们还需要更新远程仓库的commit信息。
输入以下命令:

1
git push origin -f

page-imgc