github contribbution 沒記錄

前言

  1. 長期使用GitHub託管代碼的小夥伴可能有發現,有時候寫了幾天的代碼,可是發現contribbution(小綠框並無點亮)
  2. 那麼什麼樣的commit纔會被統計到呢,這裏從github help上找到了答案,英語不錯的能夠看下

中文

  1. Issues 和 pull requestsgit

    • 這個操做是在一年以內
    • 這個操做是針對一個獨立的倉庫,不能是fork
  2. Commits 當你的commits知足如下條件時,它纔會被展現出來:github

    • 一年以內提交的commits微信

    • commits使用的email地址是與你的Github帳號相關聯的翻譯

    • 這些commits是在一個獨立的倉庫而不是fork倉庫(博主就是這種錯誤,致使半個月的commit都沒記錄,才發現)code

    • 這些commits是在:開發

      • 在默認分支上(一般是master)
      • 在gh-pages分支(包含 Project Pages sites 的倉庫)
    • 此外,至少知足下面條件中的一個(主要針對你Commit的倉庫不是你建立的):get

      • 你是這個倉庫的協做者,或者是這個版本庫的擁有組織中的一員
      • 你fork過這個倉庫
      • 你對這個倉庫發起過pull request或者issue
      • 你對這個倉庫標記了Star

    注意:私有庫的貢獻僅僅對私有庫成員顯示requests

Contributions未被Github計入的幾個常見緣由

* 進行Commits的用戶沒有被關聯到你的Github賬號中。
* 不是在這個版本庫的默認分支進行的Commit。
* 這個倉庫是一個Fork倉庫,而不是獨立倉庫。(博主就是這種錯誤)

如何排查

你能夠在你的本地repo裏用`git log`命令查看`commit`記錄上的我的郵箱是否正確,像我就是由於以前切換到Mac平臺開發以後用戶名沒有配置,因此我以後的commit記錄上的郵箱一直是mrchang,因此Github就會認爲這些commits都不是你提交的!

補救措施

然而這也並非沒有補救辦法的,Github官網上就有給出詳細的補救過程,英語好的同窗請自行移步 Changing author info,下面是我翻譯自Github Help的簡要步驟:it

  1. 變動做者信息io

    • 爲改變已經存在的 commits 的用戶名和/或郵箱地址,你必須重寫你 Git repo 的整個歷史。
      • 警告: 這種行爲對你的 repo 的歷史具備破壞性。若是你的 repo 是與他人協同工做的,重寫已發佈的歷史是一種很差的習慣。僅限緊急狀況執行該操做。 使用腳本改變你 repo 的 Git 歷史 咱們寫了一段能把 commit 做者舊的郵箱地址修改成正確用戶名和郵箱的腳本。
  2. 使用腳原本改變某個repo的Git歷史

    • 咱們已經建立了一個腳本,使用正確的姓名和電子郵件地址提交後,你之前提交的全部的commits中的做者信息及提交者字段中的舊的用戶名和郵箱地址都將被更正

    • 注意: 執行這段腳本會重寫 repo 全部協做者的歷史。完成如下操做後,任何 fork 或 clone 的人必須獲取重寫後的歷史並把全部本地修改 rebase 入重寫後的歷史中。

    • 在執行這段腳本前,你須要準備的信息:

      Mac、Linux下打開Terminal,Windows下打開命令提示符(command prompt)

      給你的repo建立一個全新的clone

      git clone --bare https://github.com/user/repo.git

      cd repo.git

      複製粘貼腳本,並根據你的信息修改如下變量:舊的Email地址,正確的用戶名,正確的郵件地址

      `
        	#!/bin/sh
      
        	git 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"
      
        	fi
      
        	if [ "$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`
      1. 按 Enter鍵 執行腳本。

      2. 用git log命令看看新 Git 歷史有沒有錯誤

      3. 把正確歷史 push 到 Github

        git push --force --tags origin 'refs/heads/*'

      4. 刪掉剛剛臨時建立的 clone

        cd ..

        rm -rf repo.git

  3. 如何正確設置你的 git 我的信息

    • 接下來全局設置好你的正確信息,之後就放心的用Github進行版本管理吧
    • git config --global user.email "你的郵件地址"
    • git config --global user.name "你的Github用戶名"

如感受文章對你有所幫助,能夠關注微信公衆號鼓勵一下

相關文章
相關標籤/搜索