git提交后个人资料下没显示commit贡献小绿点?【修改历史commit的author邮箱】
问题场景
已经git push origin
并且成功push了,仓库里也出现了commit记录,但是在github个人主页却没有显示出小绿点。
查看一下历史commit的提交作者是不是其他git用户:
1 | git log |
若因commit的Author有错,先改对
git config全局配置和本地配置(当前仓库repo):
https://hengqu4.github.io/2023/07/17/git-config/
修改git的本地配置
1 | git config user.name hengqu4 |
修改git的全局配置
1 | git config --global user.name hengqu4 |
git rebase -i对历史提交进行处理
编辑最新的几次commit
发现近2次的commit的提交者Author不是自己,重新设置基准线,回退到2次之前:
1 | git rebase -i HEAD~2 |
之后会自动进入 vi ,按下i键进入编辑模式;
把前缀从pick
改为e
或者edit
;
编辑完后按下esc
键退出编辑模式,再输入:wq!
按下回车保存编辑并退出vi;
此时回到了需要处理的commit。
编辑历史提交中的某几次(包括第一次)的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!
+按下回车即可;
输入命令进行到下一个需要处理的commit,也就是下一个我们之前把pick
改为e
的commit。
1 | git rebase --continue |
之后一直重复上面2个命令,直到所有需要编辑的commit都处理过了
1 | git commit --amend --author "hengqu4 <529914423@qq.com>" |
当某次输入了git rebase --continue
后,终端出现了成功变基并更新 refs/heads/...
的提示时停止操作,意味着所有需要编辑的commit都处理过了。
成功修改后push到远程仓库
为了验证是否历史commit编辑成功,可以输入git log
查看最新的commit记录信息。
这里可以看到之前2次作者错误的commit已经被修正了:
上述操作只是更新了本地的commit信息,我们还需要更新远程仓库的commit信息。
输入以下命令:
1 | git push origin -f |