【GIT問題】--為什么Github沒有記錄你的Contributions

記錄下為什么github 提交的時(shí)候,沒有記錄到 github 的那個(gè)日歷上。

Paste_Image.png

明明天天都有提交,但是為什么都沒有記錄上來呢? 想讓這個(gè)日歷上滿滿的綠色,但是發(fā)現(xiàn)提交都沒有被統(tǒng)計(jì)起來,很郁悶。

后面看了commit記錄,發(fā)現(xiàn)上傳的用戶都不是 github的用戶名, 很納悶。

Paste_Image.png

后面看了一篇 文章, 得知 以下三種情況,不統(tǒng)計(jì)。

  1. 用戶名或者郵箱跟github沒有關(guān)聯(lián)上, github認(rèn)為不是你提交的, 不統(tǒng)計(jì)。
  2. fork 的項(xiàng)目, 不統(tǒng)計(jì)
  3. 沒有在版本庫(kù)的master【默認(rèn)分支】上提交

解決方案

  1. 用戶名和郵箱跟github沒有匹配上
git config --global user.email "你的郵件地址"
git config --global user.name "你的Github用戶名"
  1. fork 的項(xiàng)目, 不統(tǒng)計(jì)

你說怎么辦呢? clone 下來, 在提交上去, 有點(diǎn)可恥的樣子。

  1. 沒有在版本庫(kù)的master【默認(rèn)分支】上提交 【未試過】

有補(bǔ)救的方法,

如何排查

你可以在你的本地repo里用git log
命令查看commit記錄上的個(gè)人郵箱是否正確,像我就是因?yàn)橹扒袚Q到Mac平臺(tái)開發(fā)之后用戶名沒有配置,所以我之后的commit記錄上的郵箱一直是Leo@Leo-MacBook-Pro.local
,所以Github就會(huì)認(rèn)為這些commits都不是你提交的!

補(bǔ)救措施

然而這也并不是沒有補(bǔ)救辦法的,Github官網(wǎng)上就有給出詳細(xì)的補(bǔ)救過程,英語(yǔ)好的同學(xué)請(qǐng)自行移步 Changing author info,下面是我翻譯自Github Help的簡(jiǎn)要步驟:

變更作者信息

為改變已經(jīng)存在的 commits 的用戶名和/或郵箱地址,你必須重寫你 Git repo 的整個(gè)歷史。</br>
警告: 這種行為對(duì)你的 repo 的歷史具有破壞性。如果你的 repo 是與他人協(xié)同工作的,重寫已發(fā)布的歷史是一種不好的習(xí)慣。僅限緊急情況執(zhí)行該操作。
使用腳本改變你 repo 的 Git 歷史我們寫了一段能把 commit 作者舊的郵箱地址修改為正確用戶名和郵箱的腳本。</br>
使用腳本來改變某個(gè)repo的Git歷史</br>
我們已經(jīng)創(chuàng)建了一個(gè)腳本,使用正確的姓名和電子郵件地址提交后,你以前提交的所有的commits中的作者信息及提交者字段中的舊的用戶名和郵箱地址都將被更正</br>
注意: 執(zhí)行這段腳本會(huì)重寫 repo 所有協(xié)作者的歷史。完成以下操作后,任何 fork 或 clone 的人必須獲取重寫后的歷史并把所有本地修改 rebase 入重寫后的歷史中。</br>
在執(zhí)行這段腳本前,你需要準(zhǔn)備的信息:
Mac、Linux下打開Terminal,Windows下打開命令提示符(command prompt)</br>
給你的repo創(chuàng)建一個(gè)全新的clonegit clone --bare https://github.com/user/repo.gitcd repo.git
復(fù)制粘貼腳本,并根據(jù)你的信息修改以下變量:舊的Email地址
,正確的用戶名
,正確的郵件地址

#!/bin/shgit filter-branch --env-filter 'OLD_EMAIL="舊的Email地址"CORRECT_NAME="正確的用戶名"CORRECT_EMAIL="正確的郵件地址"if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]then export GIT_COMMITTER_NAME="$CORRECT_NAME" export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"fiif [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]then export GIT_AUTHOR_NAME="$CORRECT_NAME" export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"fi' --tag-name-filter cat -- --branches --tags

按 Enter鍵

執(zhí)行腳本。

用git log

命令看看新 Git 歷史有沒有錯(cuò)誤
把正確歷史 push 到 Github
git push --force --tags origin 'refs/heads/*'
刪掉剛剛臨時(shí)創(chuàng)建的 clone
cd ..rm -rf repo.git

原文:為什么Github沒有記錄你的Contributions

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容