github contribbution 没记录怎么破?

简介: github contribbution 没记录怎么破?

前言

1 .长期使用GitHub托管代码的小伙伴可能有发现,有时候写了几天的代码,但是发现contribbution(小绿框并没有点亮)

2 .那么什么样的commit才会被统计到呢,这里从github help上找到了答案,英语不错的可以看下

中文

Issues 和 pull requests

这个操作是在一年之内

这个操作是针对一个独立的仓库,不能是fork

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仓库,而不是独立仓库。(博主就是这种错误)
  1. contribbution 没记录怎么破?

如何排查

你可以在你的本地repo里用git log命令查看commit记录上的个人邮箱是否正确,像我就是因为之前切换到Mac平台开发之后用户名没有配置,所以我之后的commit记录上的邮箱一直是mrchang,所以Github就会认为这些commits都不是你提交的!
补救措施

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

变更作者信息

为改变已经存在的 commits 的用户名和/或邮箱地址,你必须重写你 Git repo 的整个历史。

警告: 这种行为对你的 repo 的历史具有破坏性。如果你的 repo 是与他人协同工作的,重写已发布的历史是一种不好的习惯。仅限紧急情况执行该操作。

使用脚本改变你 repo 的 Git 历史

我们写了一段能把 commit 作者旧的邮箱地址修改为正确用户名和邮箱的脚本。

使用脚本来改变某个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`

按 Enter键 执行脚本。

用git log命令看看新 Git 历史有没有错误

把正确历史 push 到 Github

git push --force --tags origin ‘refs/heads/*’

删掉刚刚临时创建的 clone

cd …

rm -rf repo.git

如何正确设置你的 git 个人信息

接下来全局设置好你的正确信息,以后就放心的用Github进行版本管理吧

git config --global user.email "你的邮件地址"

git config --global user.name "你的Github用户名"

相关文章
|
Linux 网络安全 数据安全/隐私保护
配置ssh免密登录
配置ssh免密登录
481 106
|
6月前
|
人工智能 运维 Anolis
|
3月前
|
编译器 Python
如何利用Python批量重命名文件
本文介绍了如何使用Python和PyCharm对文件进行批量重命名,包括文件名前后互换、按特定字符调整顺序等实用技巧,并提供了完整代码示例。同时推荐了第三方工具Bulk Rename Utility,便于无需编程实现高效重命名。适用于需要处理大量文件命名的场景,提升工作效率。
|
3月前
|
缓存 监控 API
电商API的微服务架构优化策略
随着电商快速发展,API成为连接用户、商家与系统的核心。本文探讨微服务架构下电商API的优化策略,分析高并发、低延迟与数据一致性等挑战,并提供服务拆分、缓存异步、监控容器化等实践方案,助力构建高性能、高可用的电商系统,提升用户体验与业务效率。
81 0
|
11月前
|
缓存 监控 数据挖掘
C# 一分钟浅谈:性能测试与压力测试
【10月更文挑战第20天】本文介绍了性能测试和压力测试的基础概念、目的、方法及常见问题与解决策略。性能测试关注系统在正常条件下的响应时间和资源利用率,而压力测试则在超出正常条件的情况下测试系统的极限和潜在瓶颈。文章通过具体的C#代码示例,详细探讨了忽视预热阶段、不合理测试数据和缺乏详细监控等常见问题及其解决方案,并提供了如何避免这些问题的建议。
249 7
FileLock 多进程文件锁
FileLock 多进程文件锁
233 0
|
SQL 中间件 FESCAR
分布式事务中间件 Fescar—RM 模块源码解读
前言 在SOA、微服务架构流行的年代,许多复杂业务上需要支持多资源占用场景,而在分布式系统中因为某个资源不足而导致其它资源占用回滚的系统设计一直是个难点。我所在的团队也遇到了这个问题,为解决这个问题上,团队采用的是阿里开源的分布式中间件Fescar的解决方案,并详细了解了Fescar内部的工作原理,解决在使用Fescar中间件过程中的一些疑虑的地方,也为后续团队在继续使用该中间件奠定理论基础。
27839 172
|
人工智能 物联网 大数据
阿里云Vlog签约深圳中青旅1000个景区,沉浸式旅游成趋势
此次合作将以深中青智游为主体,依托中青旅集团丰富景区资源以及运营能力,快速推进阿里云Vlog产品在全国景区的布点
1768 15
阿里云Vlog签约深圳中青旅1000个景区,沉浸式旅游成趋势
|
存储 Kubernetes 安全
K8S原理剖析:安全原理剖析和实践
K8S原理剖析:安全原理剖析和实践
K8S原理剖析:安全原理剖析和实践
|
Web App开发 Ubuntu JavaScript
编译 WebRTC 库
最近一段时间的主要工作内容是开发一个远程控制手机的功能,其中音视频传输的部分是采用WebRTC技术来进行的,而我们的手机都是通过与其直接连接的Agent服务器进行管理,Agent服务是Java写的,现在市面上又没有合适的Java版WebRTC库,所以我就基于Google开源代码,写了一个JNI调用WebRTC Native的库。这里先简单介绍一下在编译WebRTC的过程中遇到的一些坑,分享一下整个工作过程中的经验。