github contribbution 没记录

前言

  1. 长期使用GitHub托管代码的小伙伴可能有发现,有时候写了几天的代码,可是发现contribbution(小绿框并无点亮)
  2. 那么什么样的commit才会被统计到呢,这里从github help上找到了答案,英语不错的能够看下

中文

  1. Issues 和 pull requests
    • 这个操做是在一年以内
      • 这个操做是针对一个独立的仓库,不能是fork
  2. Commits
    当你的commits知足如下条件时,它才会被展现出来:
    • 一年以内提交的commits
      • commits使用的email地址是与你的Github帐号相关联的
      • 这些commits是在一个独立的仓库而不是fork仓库(博主就是这种错误,致使半个月的commit都没记录,才发现)
      • 这些commits是在:
        • 在默认分支上(一般是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都不是你提交的!
git

补救措施

然而这也并非没有补救办法的,Github官网上就有给出详细的补救过程,英语好的同窗请自行移步 Changing author info,下面是我翻译自Github Help的简要步骤:github

  1. 变动做者信息
    • 为改变已经存在的 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复制代码
  1. 如何正确设置你的 git 我的信息
    • 接下来全局设置好你的正确信息,之后就放心的用Github进行版本管理吧
    • git config --global user.email "你的邮件地址"
    • git config --global user.name "你的Github用户名"

如感受文章对你有所帮助,能够关注微信公众号鼓励一下
相关文章
相关标签/搜索