GitHub 的提交不会记录在“你的贡献”日历中

我一直在不断提交我的 GitHub回购从我的 linux 外壳,他们很好地显示在网站上,因为他们应该。唯一的问题是“你的贡献”部分没有显示任何最近的活动。我有一个绿色的方块,从11月的某一天,我不知道我是如何得到的,但所有其他贡献没有显示在日历上(但是,他们 显示在他们的回购协议。
我错过了什么?

我的 Github 网站

95094 次浏览

这是 Github 的一个问题,有时候它们的更新机制不起作用,变成了一个“陈旧的缓存”。这没什么大不了的,只要给 support@github.com 发一封邮件,描述一下这个问题,他们就会马上解决。

对我来说,这个问题是由于我在我的工作电脑上使用不同的 gitconfig 邮件而引起的。将我的工作邮件地址添加到我的 github 帐户并没有使过去的提交显示在摘要中,但是新的提交现在正在显示它们应该显示的内容。

您可以通过 git config user.email找到用于存储库的电子邮件地址。

从废物

我刚刚看了一下您对 GoTime2存储库的贡献 看起来你一直在推动布局分支的提交。

这些捐款之所以没有出现,是因为我们只是 当贡献提交到存储库的时候,跟踪提交贡献 默认分支或 gh- 页面分支:

Https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile#which-contributions-are-counted

一旦您的贡献合并到默认页面或 gh 页面中,您就可以 将会在你创作它们的当天被记录下来。

因此,在我的例子中,我必须将我的“布局”分支与“主”分支合并,才能看到“您的贡献”出现在日历中。

这招奏效了! 我只用了 $ git config user.email "my email address used on my git repo"就奏效了。

一个可能的原因是:

承诺是在一个分叉中做出的

在分叉中进行的提交将不计入您的贡献。

Https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile/

我也遇到过同样的问题,这对我很有用: GitHub 贡献检查器,链接如下。 安装之后,程序检查最近提交的有效性,并给出一个规则列表,其中规则/规则不符合红色。

我的问题是 GitHub 使用 Cygwin 终端名作为电子邮件地址,所以我只是将我的 Cygwin 终端名添加到我的个人资料中,所有最近的提交都添加到我的 GitHub 日历中。

您的提交将不会被计算为贡献! 检查下面的细节: Https://github.com/jdennes/contribution-checker

在我的许多提交发生之后,一个私人回购被添加到我的组织中(新的提交正常显示) ,我在看到提交的属性时遇到了问题,只能通过从我的个人资料中删除电子邮件地址,然后重新添加相同的电子邮件地址才能让它们显示出来。

这样做似乎解决了 GitHub 中的一个缓存问题。

“您必须使用您登录 github 帐户时使用的相同电子邮件 ID 提交更改”

解决方法:

  • 使用以下命令更改所有存储库的全局电子邮件 ID。

Git config —— global user.email abc@xyz.com

  • 或者更改一个特定存储库的电子邮件 ID

Git config user.email abc@xyz.com

  • 或者在存储库 open. git/config 文件中进行编辑

电子邮件 = abc@xyz.com Name = abc

其他原因可以在这里找到 Https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile/

我不得不手动添加我的电子邮件到 SourceTree 设置,即使 git config有正确的电子邮件地址配置。只有在这样做之后,GitHub 才开始记录我对贡献图表的提交。

SourceTree Settings Screenshot

请确保您的本地电子邮件是完全相同的一个帐户。

进入终端和文件夹内部,你正在推送提交,运行:

git config --global user.email
#=> TRICULI.TO@MAIL.com


git config --system user.email
#=>


git config --local user.email
#=> triculito@mail.com

类似的事情也发生在我身上。我账户里的电子邮件是全球的,但我的本地邮件略有不同,它没有.

(在 Gmail 中,这些电子邮件没有区别,它们的工作原理完全一样)。

原来我之前在 GitHub 上更改了我的电子邮件地址,而且我也忘了更改本地邮件地址。

也许 Github 已经解决了这个问题,有一个简单的方法,访问 Github.com 的电子邮件设置: https://github.com/settings/emails

个人设定-> 电邮

您可以添加电子邮件地址,并验证您的新电子邮件地址与发送一个验证链接,然后您会发现您以前的提交都记录在“您的贡献”日历。此电子邮件验证还将让您接收来自 GitHub 的通知和密码重置。

您的新电子邮件地址将用于与帐户相关的通知(如帐户更改和账单收据) ,以及任何基于网络的 GitHub 操作(如编辑和合并)。

所以这通常是由于很多因素造成的,为此你必须访问这个 GitHub 的帮助

我发现最常见的错误是:

  1. 电子邮件在本地机器上配置不正确。(你的笔记本电脑/个人电脑)。
  2. 分叉。
  3. 未使用默认分支或 gh- 页分支进行提交。

我个人最近遇到了问题1,为此我转到 终端/cmd/cli,通过运行这个命令在本地配置我的电子邮件地址

git config --global user.email yourname@email.address

完成之后,试着像下面这样再次运行这个配置:

git config --global user.email

你应该能够看到:

yourname@email.address

如果这是正确的,那么您已经成功地使用全局公共回购配置了本地计算机。现在,您的下一个提交将记入您的日历中。

你可以访问这个 https://github.com/settings/emails : < a href = “ https://github.com/sets/email”rel = “ nofollow norefrer”> 并添加您在 git config 中使用的电子邮件—— global user.email

我在用于 iOS 开发的 Xcode 9中遇到了同样的问题。

在 Github 中,我注意到一个非提交者作者。 enter image description here

即使我在 Xcode 做出了承诺。 “你的贡献”日历上没有任何贡献。

解决方案:

全局更改提交者姓名和电子邮件
用于提交的电子邮件地址必须与您的 GitHub 帐户关联。

在终点站:

$ git config --global user.name "Full Name"
$ git config --global user.email "fullname@gmail.com"

另见 GitHub Help: 在 Git 中设置提交电子邮件地址

最近我不得不恢复我的笔记本电脑,忘了重新配置我的电子邮件。我的笔记本电脑用户名看起来和我的 git 用户名很相似,所以我只是盲目地认为我的提交被正确地归属了。如上所述,您可以更改您的全球电子邮件设置。但是,如果您想纠正项目中的错过属性提交,您可以使用这个 run this script 创建一个别名 gca,您可以在 git 项目目录中运行它来更改您过去提交的作者。

~目录中,添加:

$ cat <<EOF >> ~/.aliases
function git_change_authorship {
git filter-branch -f --env-filter "
GIT_AUTHOR_NAME=\"\$1\"
GIT_AUTHOR_EMAIL=\"\$2\"
GIT_COMMITTER_NAME=\"\$1\"
GIT_COMMITTER_EMAIL=\"\$2\"
"
}
alias gca=git_change_authorship
EOF


$ source ~/.aliases

然后在 git 项目目录中运行 gca <git username> <git email address>

小心!我只在自己的个人项目中使用过这种方法,在这些项目中,我是唯一的提交者。还没有机会在小组项目中进行测试,所以要小心行事。

我也有同样的问题,原来是因为我本地 Git 上的邮件与我 GitHub 账户上的邮件不匹配。

更新本地机器上的电子邮件:

git config --global user.email "your.email@email.com"

验证所有的提交都在 github 上更新了,如果没有,可以通过单击提交并添加“来检查单独的提交,以查看提交与哪些电子邮件相关联。”。像下面这样将“ patch”添加到提交 URL 的末尾:

https://github.com/username/repoName/commit/9fbe83f71cfc3503.patch

现在你所要做的就是把你看到的电子邮件添加到你的帐户中。(无须核实)

再次检查提交,您应该看到您的用户名和署名:)

我刚刚通过命令行再次添加了我的电子邮件,它解决了这个问题:

$ git config user.email "myemil@mydomain.com"

另一个问题是关于你的分行。如果您在微波激射器旁边创建另一个分支,并尝试推动该分支,则可能会发生这个问题。在我的情况下,我已经开始推动掌握并得到了解决方案。

我检查了存储库的“ Insights”部分/选项卡,发现不是我当前的用户,而是一个匿名用户(也就是我) ,所以我将当前计算机中的电子邮件配置更改为我使用 github 的配置,如上所述。

Insigths

您可以保持您的电子邮件私密性,并仍然有贡献显示在您的日历。您可以选择将您的电子邮件地址从 < em > github 电子邮件设置 保持为私有,并在您的 git 配置中使用 不回复电子邮件地址

git config user.email "xxxxxxxxxxx@users.noreply.github.com"

注意

对我来说,我已经选择保持我的电子邮件私人从 Github 电子邮件设置。 这给了我一个错误

Your push would publish a private email address.

在我努力争取回购的时候。我删除了邮件。在这之后的推动是成功的,但贡献没有记录在我的日程表。

正如 GitHub 在电子邮件设置页面中提到的

我们将删除您的公共档案电子邮件和使用 Xxxxxxxxxxx@users. noreply.github.com 当执行 基于网络的 Git 操作(例如编辑和合并)和发送电子邮件 如果希望命令行 Git 操作使用 私人电子邮件你必须 在 Git 中设置你的电子邮件

有同样的问题,我的是固定的电子邮件

git config --global user.email jonathan.m2ndoza@gmail.com

希望这个能帮上忙。

我也有同样的问题,解决方法很简单。我把全局电子邮件配置设置错了

git config --global user.email "email@yourmail.com"

只要确保上述电子邮件和您的 GitHub 帐户电子邮件是相同的

Github 上的“贡献日历”或“活动概览”只记录与记录在 github 帐户中的邮件地址相关的提交。

更改以后所有提交的邮件地址

正如本帖中其他许多人已经指出的那样,通过以下方法查找当前本地保存的电子邮件地址:

git config user.email

如果它与 github 上的邮件不匹配,请使用以下方法进行更改:

git config --global user.email my_email@gmail.com

这将在全局范围内更改所有未来提交的邮件地址,但不会影响过去提交的“贡献概述”。您可以按照 官方文件进行扩展描述。

更改邮件地址以更新过去提交的概述

你意识到你过去的许多贡献并没有被正确地记录在 Github 的“贡献概述”中: enter image description here

要改变这一点,您可以按照解释过的 在 Github 的官方文件里步骤更改存储库的作者信息。

一个简短的总结:

  1. 开放的饭桶狂欢
  2. 克隆一个空的存储库

    git clone --bare https://github.com/user/repo.git
    cd repo.git
    
  3. Paste the following code into the git bash console after changing the variables OLD_EMAIL, CORRECT_NAME and CORRECT_EMAIL:

    #!/bin/sh
    
    
    git filter-branch --env-filter '
    
    
    OLD_EMAIL="your-old-email@example.com"
    CORRECT_NAME="Your Correct Name"
    CORRECT_EMAIL="your-correct-email@example.com"
    
    
    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
    
  4. Press enter to run the script

  5. Push the corrected history to github
    git push --force --tags origin 'refs/heads/*'
    

This procedure should update the "Contributions Overview" and now also show the commits not shown before: enter image description here

Warning: This action is destructive to your repository's history. If you're collaborating on a repository with others, it's considered bad practice to rewrite published history. You should only do this in an emergency.

GitHub 清楚地说明了他们如何在 救命中衡量你的贡献:

  • 问题和请求:

    • 只有在独立存储库中打开它们,而不是在 fork 中打开它们

  • 除非他们满足以下所有条件:

    • 用于提交的电子邮件地址与您的 GitHub 帐户关联

    • 提交是在一个独立的存储库中进行的,而不是在 fork 中进行的

    • 作出了以下承诺:

      • 在存储库的默认分支(通常是主分支)中
      • 在 gh- page 分支中(用于具有项目站点的存储库)

    此外,以下至少一项必须正确:

    • 您是存储库的合作者,或者是拥有存储库的组织的成员
    • 您已经分叉了存储库
    • 您已经在存储库中打开了一个请求或问题
    • 您已经在存储库中使用了星号

注意: 在做出符合贡献计数要求的提交之后,您可能需要等待长达24小时才能看到贡献出现在贡献图中

确保使用用户标志。 比如说 git push -u origin 而不是 git push

通过在本地环境中使用 GitHub 配置文件的用户名作为 git 用户名,我修复了类似的问题。

举个例子,

Https://github.com/susithrj

在本地 git 配置中将全局用户名设置为 Susithrj

Git config —— global user.name“ susithrj”

对我来说是项目中的文件:

/.git/config


...
[user]
name = your user
email = user@host.com
...

在代码块[ user ]中,仔细检查“ email”是否正确(mine 是不正确的) ,并且名称是唯一的(mine 是重复的)。

与贡献者进行反复核实的方法越来越多地被使用:

git shortlog -sn

Make a push,检查哪一个正在增加计数器,该名称应该是块[ user ]中的名称

我联系了 Github Team 来解决同样的问题,这是他们的回应,希望能对你们有所帮助

如果捐款符合特定的标准,就会被计算在内,如下所述:

Https://docs.github.com/github/setting-up-and-managing-your-github-profile/why-are-my-contributions-not-showing-up-on-my-profile

使用这个应用程序,你可以找出为什么对公共存储库的特定提交不算作贡献:

Https://contribution-checker.herokuapp.com/ 这个捐款检查器很有用它解决了我的问题

人们经常发现他们缺少贡献,因为他们的提交是由一个与他们的 GitHub 帐户无关的电子邮件地址创作的,如下所述:

Https://docs.github.com/github/committing-changes-to-your-project/why-are-my-commits-linked-to-the-wrong-user

您可以通过在提交 URL 的末尾添加. patch 来检查提交的作者,如下所示:

Https://github.com/github/linguist/commit/cfd5cbaba00122fceea1cfb108c5bdc3d451065a.patch

我做了两个改动解决了这个问题

  1. 我使用命令 git config --global user.email "your github email"配置了本地计算机
  2. 我使用 github 网站@https://github.com/your-username/your-repo-name/settings/branches将我的项目回购默认分支从 main to master更改为

`

我遇到了同样的问题,并且发现我并没有推到原点/主分支,而是推到了其他分支。我通过合并两个分支解决了这个问题。此外,即使两个分支合并,如果 origin/main分支落后于多次提交,贡献部分仍然不会更新。一个仍然需要做合并(种类) ,以确保 origin/main分支是更新所有的时间,做:

注意: (这个解决方案将很容易工作的本地回购是拉从一个远程和推到一个不同的目标回购(有问题的))

  1. git pull origin main:temp

    • 这将把 main 拉到一个 temp 分支(temp 是本地分支) ,但是如果一个分支正在推入多个分支系统,那么仍然需要多次提交 origin/main分支。我们需要签出临时分支来合并/移动它(可以这么说)
  2. git checkout temp

    • 它将从: (origin/main, origin/HEAD, temp)变为-> > > > > > > > (HEAD -> temp, origin/main, origin/HEAD)这意味着现在 HEAD 指向 temp分支,所以我们可以让它向前移动(可以这么说)几次提交(或者合并任何情况)。
  3. git merge branch-second

    • 现在,我们希望合并到分支秒: (origin/branch-second, main, branch-second)本地,这是合并后临时以上的几次提交,如下所示: (HEAD -> temp, origin/branch-second, main, branch-second)
  4. git push origin temp:main

    • 现在将 temp 按到原点(原点表示远程)的 main:
  5. git log --all --decorate --oneline --graph显示:

    • (HEAD -> temp, origin/main, origin/HEAD, origin/branch-second, main, branch-second)
所以,原始/主文件被合并并推送到分支秒,所有文件都处于相同的级别,贡献开始显示:)希望这能节省您的时间

看看我的中篇文章: 中号

对于那些在 git config 中输入正确的(你认为的)电子邮件和名称后仍然不能使其工作的人:

删除包装电子邮件和姓名的引号。

这对我有用,粗心的我. 。

我通过以下方式解决了我的错误:

我上传了回购协议,用的是: git remote add url "my-repo-link" git push url master

使用 用 url 代替原点时,即使推后也没有显示任何绿点, 所以,我创建了另一个回购,并重新启动和提交,这一次我写: git remote add origin "my-repo-link" git push origin master

所有我以前的承诺,我的前回购也添加到我的新回购... 节省了我的工作和时间

添加 发给 GitHub 的第二封邮件不仅有助于解决当前的问题,还有助于检索过去的提交/贡献。

如果本地机器上的电子邮件与 GitHub 帐户中的电子邮件不匹配,GitHub 将不会填充贡献。 如前所述,运行以下命令以确定本地机器上正在使用哪些电子邮件: git config user.email。 继续到 https://github.com/settings/emails并添加一个辅助电子邮件,您将在本地机器上找到它。

承诺是在一个分叉中做出的

在分叉中进行的提交将不计入您的贡献。


更多信息请点击这里