曹智铭的网站

  • 主页
  • 关于我
  • 三年之约Marty
  • 我的云盘
  • 联系我
  • 友情链接
  • 登录/注册
曹智铭的网站
越自律,越自由!
  1. 首页
  2. GitHub
  3. 正文

玩转GitHub的贡献频率图——Gitfiti

2022年3月20日 615点热度 45人点赞 5条评论

说明文档里面提到的坑我一个也踩不到;谁也没遇到的坑我处处都掉。

——题记

前几天我发了条QQ空间说说,附的图片是我的GitHub贡献图上出现了一只猫。

你要知道我为了实现它多么难……

遇见Gitfiti

看到有人贡献图做了这个效果,觉得很有意思,于是我去百度搜了一下,就发现了Gitfiti。这是一个Python程序,原理其实也不是很难。运用了git的一个特性,就是Git记录的commit提交时间不是提交到git服务器时服务器的时间,而是提交者的设备的时间。那么,只要篡改发到git服务器的时间,就可以实现在一天内进行看起来不同日期的提交。

现在有个问题。我们家电脑最近重装了Windows系统,C盘里的git和Python都没了,这我该怎么办呢,又不能用手机安装Python或者git。突然我想起,这个网站的服务器,也是一台电脑。不仅如此,它还安装了较新版本的Git和Python 3。于是,我就“打起了服务器的主意”。

开始…

首先让服务器连接上GitHub。这不难。直接ssh keygen一个ssh密钥然后在GitHub的用户设置里面添加公钥就好。(输入法居然提示我,公钥的钥读作yue四声,我读错了这么长时间)

然后,开始安装Gitfiti。

git clone git@github.com:gelstudios/gitfiti.git
cd gitifi
python gitfiti.py

这时,它就提示我输入Github用户名、新建的仓库名、想要显示的提交图案的时间、图案,我进行了一番设置,因为都是手把手的,我就不在这里赘述了。

最后它生成了一个gitfiti.sh,我只需要sh gitfiti.sh然后等待一会儿,便提交上去了。呐:

没什么问题,不是吗?

“没什么问题”

等一下!为什么提交者(图中的粗体字)是“Gitea”?

我想了半天没想出来,觉得无妨,去看看我的GitHub主页,发现没有预想的图案,去看说明文档,才发现需要等一两天,我就没当回事儿。

但是已经一个星期过去了啊啊啊!为什么还没有!

我曾经看过Spencer Woo的一篇文章,有人在GitHub上冒充他。再想想提交者是Gitea,再想想我用的是我的服务器……突然,这些毫无联系的句子仿佛一个个结点,在高速运动中猛然结成了一张网,仿佛我猛然间想出一道几何体的解法一样。

原来——是这样!GitHub是直接存储git提交的git用户名和git设置的邮箱,然后再根据这些信息去和自己数据库中的用户信息匹配,来确认是哪个用户在提交,从而记录提交数量。我在使用时只添加了ssh密钥,(哎呀,又读错了)而服务器上又有一个Gitea程序——我们的GitUP网站。在安装Gitea时可能git用户名和邮箱就被修改了,因此Github并不能认出是我在提交。找到了问题,自然就好解决了。

git config --global user.name "cao-zhiming"
git config --global user.email "my_email@email.cn"

聪明的小伙伴都看出来了,可以运用Git的这一个(也是又一个)特性来伪造他人向Github提交,就像Spencer Woo的那篇文章一样。这也就是为什么我在上面的代码里面没有透露我的真实邮箱。

好吧,总之,又踩了一个别人都从未踩过的坑,但至少搞定了,可以去发个朋友圈或者QQ空间炫耀一下了。(你也可以借助我在上一段说的这个git特性,在知道另一个Github用户的用户名和Github用户邮箱的情况下,在他/她的贡献图上显示一些图案,嘘~别说是我告诉你的😄)

标签: Git Gitfiti GitHub 特性
最后更新:2022年3月20日

曹智铭

嘿,很高兴认识你!我就读于人大附中翠微学校,热爱英语、编程等,是本站的管理员。

点赞
< 上一篇
下一篇 >

文章评论

  • 曹智铭

    额,好像99天以后就要生物地理小中考了😂,(点击来查看中考倒计时)我还是快点去学习吧。

    2022年3月20日
    登录以回复
    • 返回

      @曹智铭 我们是同一届的

      2022年8月9日
      登录以回复
      • 曹智铭

        @返回 哦?你是说,我们是同一个年级的?

        2022年8月14日
      • 曹智铭

        @返回 幸会幸会。

        2022年8月14日
      • 返回

        @返回 貌似是这样的

        2022年8月14日
  • 您需要 登录 之后才可以评论

    Copyright © 2020~2023 曹智铭的网站,保留所有权利。

    Theme Kratos Made By Seaton Jiang

    京ICP备2021015079号-2