跳过正文
  1. 技术/

问题解决——本地提交至GitHub仓库,贡献不显示

2 分钟· ·
Yuzhen 问题解决 Git
Yuzhen
作者
Yuzhen
好奇驱动,积极成长。
目录

问题描述:
#

这几天一直在用github来配置和更新博客,但是今天发现github上的contributions并没有我的提交记录。其次相关repository的commits显示如下

image.png

原因:
#

电脑git是用homebrew安装的,mac并没有进行本地配置,直接用终端把本地文件push到仓库中了。

因为本地的git默认的user.name和user.email并不是github中的,而是本机的。所以在此期间的commit都是默认本机的。

1. 查看commit记录.
#

$git log

image.png

虽然在往你的github仓库中push,但是用户名和邮箱却不是你,而是系统默认的pc用户。

2. 查看自己的git所属
#

$git config user.name
$git config user.email

image.png

查不出的结果应该是为空。所以github贡献统计的根本就不是你的账户。

解决办法:
#

1. 配置本地git
#

$git config --global user.name "github accountname"
$git config --global user.email "github@xx.com"

这里只是在git config 后边添加上了要更改的内容即可,--global参数指的是全局,也就是本地的所有仓库,如果不加就是单个仓库。

修改好后,以后的commit就是你的账户了,就能被统计贡献。

2. 修改commit和push历史
#

修改所有的commit和push历史,把之前所有用默认账户的commit都归为真正的账户名下。

# AUTHOR记录的是这次修改的作者信息
$git filter-branch -f --env-filter '
if [ "$GIT_AUTHOR_NAME" = "oldName" ]
then
export GIT_AUTHOR_NAME="newName"
export GIT_AUTHOR_EMAIL="newEmail"
fi
' HEAD
#COMMITTER是这次提交的用户信息
$git filter-branch -f --env-filter '
if [ "$GIT_COMMITTER_NAME" = "oldName" ]
then
export GIT_COMMITTER_NAME="newName"
export GIT_COMMITTER_EMAIL="newEmail"
fi
' HEAD

注意两者区别,

如果自己写自己提交,那么两者都是你。

有的项目有的人并没有commit权限,所以修改完之后需要交给有权限的人提交,这样你是AUTHOR并不是COMMITTER

如果修改成功提示:Ref ‘refs/heads/master’ was rewritten

如果修改失败提示:Ref ‘refs/heads/master’ is unchanged这里可能是因为填写的oldName并没有找到。

如果无差别修改的话去掉if..fi

$git filter-branch -f --env-filter "
GIT_AUTHOR_NAME='newName';
GIT_AUTHOR_EMAIL='newEmail';
GIT_COMMITTER_NAME='newName';
GIT_COMMITTER_EMAIL='newEmail'
" HEAD

3. push到远程仓库
#

  • 使用强制push的方法:
$git push -u origin master -f

这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候。

我这里只是自己写的博客,所以就直切全部强制覆盖掉了。

  • push前先将远程repository修改pull下来
$git pull origin main
$git push -u origin main
  • 若不想merge远程和本地修改,可以先创建新的分支:
$git branch [name]
$git push -u origin [name]

最终修改成功🎉

image.png

相关文章

搭建个人博客——3.GitHub Pages 发布博客
2 分钟
Yuzhen 配置 文档
搭建个人博客——2. Blowfish主题自定义
4 分钟
Yuzhen 配置 文档
搭建个人博客——1. 安装hugo, Git, 配置Blowfish主题
3 分钟
Yuzhen 配置 文档
关于我
1 分钟
关于我 Yuzhen
2024-09-14偶遇的蘑菇🍄
1 分钟
蘑菇 生活