首页 > 解决方案 > 我在 GitHub 上开发了一个私人仓库,然后将其公开。我可以让我的活动可见吗?

问题描述

我工作了 6 个月的私人回购。今天终于在投稿后公开了。是否可以使活动(那些绿色方块)可见?我尝试单击contribution setting并收到消息Visitors will now see your public and anonymized private contributions,但活动仍然没有显示。

更新1:

我注意到只记录了我在 GitHub(网站,而不是从我的机器上推送代码)上所做的更改。也就是说,只有readme文件显示我经常在网站上更新它。

更新 2:

我跑去git --no-pager log -s --format="%ae"查看提交时使用了哪些电子邮件,得到以下信息:有些电子邮件是primaryGitHub 下的电子邮件,有些是 form 43555163+Penguin@users.noreply.github.com,有些是Penguin@Penguin-MacBook-Pro.local,有些是Penguin@econ2-204-32-dhcp.int.university_name.edu

此外,正如我在下面的评论之一中提到的,如果我去我的仓库并专门查看提交,我可以看到类似的内容:Penguin authored and Penguin committed on May 27 1 parent 1d71ac3 commit cb95c2870de67383ee653849b4c7b40a062f5fd3. 但这并没有显示在我的活动中。

最后,一些评论提到在 GitHub 上创建一个新的 repo 并推送我以前的提交(在过滤了我不太理解的电子邮件之后)。但是,我已经Stargazers在这个 repo 上有了几个,并想保留它们。通过进行新的回购,我相信这些将会消失。

更新 3:

我曾经git filter-repo将所有电子邮件更改为我的主电子邮件,现在我以前所有的提交电子邮件似乎都是我打电话时的主电子邮件git --no-pager log -s --format="%ae"。但是,我仍然没有看到活动显示。例如,如果我去我的仓库,我可以看到其中一个提交说Penguin authored and Penguin committed on Apr 8,但这并没有显示在活动中。

标签: githubrepo

解决方案


我注意到只记录了我在 github(网站而不是从我的机器上推送代码)所做的更改。

这意味着您需要从克隆存储库的本地文件夹中检查:

git config user.name
git config user.email

确保这些与您的 GitHub 用户帐户和 GitHub 用户电子邮件相匹配。
然后进行一些新的提交,然后推送:看看是否反映了活动。

OP Penguin在评论中确认:

看起来电子邮件不一样(由于某种原因,我的本地计算机中的电子邮件是空的)。

现在我可以通过我的本地机器推送提交,它们显示为活动。

有没有办法显示我以前的提交?

为此,您需要重写您过去的提交,并强制推送结果(如果您是唯一在该存储库上工作的人,这没关系)。

请参阅如何切换 GitHub 帐户并追溯更新提交历史?例如,使用git filter-repo(使用 mailmap 地图),或git filter-repo --commit-callback.


我不太明白。如果我将创建一个新的回购并将所有内容推送到它,我将失去观星者

您不会创建新的远程存储库,只需将其克隆到新的本地克隆存储库中,然后在那里应用 git filter-repo。

一旦本地历史在提交作者方面符合您的期望,您就强制推送回原始远程存储库(及其所有 Stargazers)。

git push --force # at least for the main/master branch

讨论

我认为 git push --force 有效。我仍然看到提交页面上的提交未经过验证,但活动现在出现了。
这是他们没有验证的问题吗?

现在看来,每当我尝试从本地机器推送提交时,出于某种原因,我都需要进行身份验证

远程身份验证不同于提交作者身份和验证。

已验证的方面是由于缺少提交签名,如此处所述
您需要在本地退出提交(仍在使用git filter-repo),然后再次强制推送它们。
签名后(使用注册到您的 GitHub 个人资料的密钥),它们将显示为已验证。

git pushwith 身份验证取决于您使用的协议(HTTPS 或 SSH),最近(撰写本文时为 2021 年 11 月)由torek在 Windows 终端上的 git 上切换帐户的简单方法? ”中解释。


推荐阅读