這段時間一直在自學前端框架,做了很多小東西,眼看着自己的github也在不斷的變綠,沒想到人的滿足感竟然被這一面牆的綠格子所馴服
滿屏的深綠估計是很多人炫耀的資本,本人不是什么大牛,不過自己辛辛苦苦一行一行調試好了,最后連這點炫耀的記錄都不給顯示!!git你要翻天啊!
本來想着就這幾天的,沒了自己認倒霉,可是今天一搜索,沒想到是可以恢復的,太NM的神奇了,一下是我查詢到的恢復github commits記錄及統計的辦法
首先要分析為什么你的提交記錄沒有被github識別:
-
進行Commits的用戶沒有被關聯到你的Github帳號中。
-
不是在這個版本庫的默認分支進行的Commit。
-
這個倉庫是一個Fork倉庫,而不是獨立倉庫。
我估計很多人和我一樣都是第一個原因,初用github遠程管理代碼和那些經常更換使用機器的猿極有可能用錯賬戶名和郵箱,其實我在修改自己的原來的用戶名和郵箱是就發現,
當初設置的用戶名竟然是自己的密碼。。。。用戶名是郵箱,但是為什么平時可以正常提交呢。。。想想才反應過來,我都不用bash去push,而是在git的圖形工具里進行diff和push,
那就難怪了,在GUI里,一般都是默認提交時輸入郵箱和密碼的,這里又有一個坑,我每次都是在用戶那一個alert里輸入自己的郵箱,然后是密碼,這里要說,如果你輸入郵箱,
就一定要注意你的這個提交賬戶和簡歷repo的賬戶名要關聯,不然夠嗆了,你辛辛苦苦改了幾個月發現那個炫富的綠牆里什么鬼都沒有,呵呵
至於下面的兩個原因應該在多人合作開發中會遇到吧
下面是解決的辦法:
這是github官方的辦法,全英文
https://help.github.com/articles/changing-author-info/
然后我一直在疑惑里面說的那個script在哪里,后來在另外一個大俠那里找到答案了。。。那塊被牆了。。。對,那塊代碼在天朝看不到
貼出來吧:(請按說明修改5,6,7行的內容)
1 #!/bin/sh 2 3 git filter-branch --env-filter ' 4 5 OLD_EMAIL="錯誤記錄里的郵箱" 6 CORRECT_NAME="github賬戶名" 7 CORRECT_EMAIL="正確的賬戶郵箱" 8 9 if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] 10 then 11 export GIT_COMMITTER_NAME="$CORRECT_NAME" 12 export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL" 13 fi 14 if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ] 15 then 16 export GIT_AUTHOR_NAME="$CORRECT_NAME" 17 export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL" 18 fi 19 ' --tag-name-filter cat -- --branches --tags
然后在bash里執行如下代碼,user替換成你的github賬戶名,repo.git替換成你的repo的名字
1 git clone --bare https://github.com/user/repo.git 2 cd repo.git
以上執行后,把上面的script新建成一個.sh的shell腳本文件存到repo.git這個目錄里,然后在bash里執行它,就是在目錄下找到對應的test.sh,然后回車的意思
然后會出現執行的提示,之后只要不報錯,就自動結束了,之后
1 git push --force --tags origin 'refs/heads/*
最后把這個臨時down下來的repo目錄刪掉就行,一切大功告成
再去看的你的github首頁,丟失的綠格子都回來了。