如何在Github貢獻板上創作自己的像素塗鴉

工作勞累?身體發虛?沒時間提交代碼?看着自己的Github主頁中 0 contributions in the last year 是不是很喪氣?不用擔心,現在你不僅可以補上你那些空缺的時光,還可以在上面創建屬於自己獨一無二的像素塗鴉作品,畫個愛心對TA表白,塗個蛋糕紀念生日,盡情發揮你的創造力。

各位Gayhub,噢不,Github的朋友們,應該都知道Github在個人主頁有一個貢獻板塊吧,它通過不同的顏色來展現你在特定時間段內提交次數的多少,顏色越深代表你那天commit的次數越多,奈何我等菜雞屬性,總覺着自己的貢獻面板和大佬之間存在着天壤之別。

別人家的Github:

我的Github:

看着別人綠油油的一片,再看看自己 0 contributions in the last year 是不是有點兒心酸呢?

閒來無聊,就研究了下Github貢獻板是根據什麼規則進行統計顯示的,發現這玩意還是動態生成的。

什麼是動態生成呢?

就是說Github在生成貢獻熱力圖的時候是會實時統計你創建的所有倉庫的commit情況,比如你有個A倉庫,並且A倉庫在某天進行了

commit提交操作,那麼對應到Github的貢獻板上的相應日期就會出現一個小綠點,小綠點的顏色深淺和你commit的次數成正比(但並不絕對),但是當你把倉庫A從Github刪除的時候,這個小綠點也會跟着消失,這就叫動態生成。(國內Gitee碼雲的貢獻面板則是一次性生成的綠點生成之後不會隨着相關倉庫的刪除而消失,請謹慎操作!)

那麼小綠點深淺的具體規則又是什麼呢?提交多少次才能變成最深的綠的呢?

有關這個規則我在Github官方並沒有找到任何說明,不過網上有大佬可能自己試驗出來了。

甚至還有評論說給Github官方發過郵件,但是這個居然是機密?

哈哈哈,估計細節方面可能不大準確了,畢竟人家官方都不願意說肯定是有不爲人知的祕密,不過大概的規則肯定和上圖中的大佬說的差不多啦。

說了這麼多,那麼我們究竟如何才能實現任意的對貢獻面板進行修改呢?時間還會倒流?

還真說到點子上了,關鍵點就在於時間。

其實Github統計的commit時間取決於Git倉庫中記錄的commit時間,而往Git倉庫中提交的時間是可以修改的。

由於對Git命令不是太熟,一開始想到了通過修改系統時間來改變commit的時間,發現是可行的。

後來查到了commit命令有個–date參數,可以實現提交時間的自定義,格式爲:
git commit --date="月 日 時間 年 +0800" -m "提交"
比如:
git commit --date="May 7 9:05:20 2016 +0800" -m "提交"

這樣就可以實現用過去的時間進行提交。不過關於Github統計時間需要注意下根據官方說法是根據UTC時間統計的,不過我實測發現貌似和Github服務器的所在地點的時區有關,我訪問的服務器猜測在舊金山,與北京時間差了16小時,也就是說如果想要Github統計的時間是0點,那麼你北京時間就要設置成16點才行。

自定義提交時間我們實現了,接下來的事情就好辦啦,我們如果要實現在Github貢獻板任意塗鴉,其實只需要知道哪一天我們需要commit多少次就好了,自定義提交時間用來決定我們想讓哪些格子有顏色,而commit次數的多少決定了顏色的深淺,這樣通過這兩者的結合,我們就可以輕鬆地創造出屬於自己的像素風格的塗鴉啦。

原理就這麼簡單,純屬無聊,如果你也同樣想玩的話可以照着方法去試試。

如果嫌自己寫麻煩的話也可以直接用我寫好的工具。

項目地址:https://github.com/qinshuang1998/GithubPainter

裏面有個用html寫的designer設計器,打開後會生成一個和Github一模一樣的貢獻板,你可以通過在上面點擊鼠標來控制格子的顏色,從而畫出你想要的圖形,最後點導出,會生成一個out.qs的文件,然後用commit.py的python腳本讀取它並對本地的Git倉庫進行commit操作就好了(需要事先準備好一個Git倉庫以供操作,腳本中的文件路徑等參數需要自己改動),運行完成後將你的本地倉庫push到Github上,然後就能看到你自己設計的像素圖形啦(生成時間不確定,24小時內都可能)。

我用這個在我出生那年畫了一個紀念生日的像素圖案,還給配上了蛋糕,哈哈哈你也來試試吧。
heatmap
藝術無處不在,Github也不要放過噢。

注意:本項目僅供娛樂,請勿用於不當途徑!產生的任何糾紛本項目概不負責。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章