github contribbution 沒記錄

前言

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

中文

  1. Issues 和 pull requestsgit

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

    • 一年以內提交的commits微信

      • commits使用的email地址是與你的Github帳號相關聯的
      • 這些commits是在一個獨立的倉庫而不是fork倉庫(博主就是這種錯誤,致使半個月的commit都沒記錄,才發現)
      • 這些commits是在:spa

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

        • 你是這個倉庫的協做者,或者是這個版本庫的擁有組織中的一員
        • 你fork過這個倉庫
        • 你對這個倉庫發起過pull request或者issue
        • 你對這個倉庫標記了Star
  • 注意:私有庫的貢獻僅僅對私有庫成員顯示

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

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

    如何排查

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

    補救措施

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

    1. 變動做者信息開發

      • 爲改變已經存在的 commits 的用戶名和/或郵箱地址,你必須重寫你 Git repo 的整個歷史。rem

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

      • 咱們已經建立了一個腳本,使用正確的姓名和電子郵件地址提交後,你之前提交的全部的commits中的做者信息及提交者字段中的舊的用戶名和郵箱地址都將被更正
      • 注意: 執行這段腳本會重寫 repo 全部協做者的歷史。完成如下操做後,任何 fork 或 clone 的人必須獲取重寫後的歷史並把全部本地修改 rebase 入重寫後的歷史中。
      • 在執行這段腳本前,你須要準備的信息:requests

        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

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

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

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

    相關文章
    相關標籤/搜索