我在 GitHub 开发了一个私人仓库,然后在 public 完成了它。我可以让我的 activity 可见吗?
I worked on a private repo in GitHub then made it public. Can I make my activity visible?
我有一个 6 个月的私人回购协议。今天投稿后终于public了。是否可以使 activity (那些绿色方块)可见?我尝试单击 contribution setting
并收到消息 Visitors will now see your public and anonymized private contributions
,但 activity 仍然没有显示。
更新 1:
我注意到只记录了我在 GitHub(网站而不是从我的机器推送代码)上所做的更改。也就是说,只有 readme
文件显示,因为我经常在网站上更新它。
更新二:
我 运行 git --no-pager log -s --format="%ae"
查看哪些电子邮件用于提交并得到以下信息:
有些邮件是 GitHub 下的 primary
邮件,有些是 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
的内容。但这并没有显示在我的 activity.
最后,一些评论提到在 GitHub 上创建一个新的 repo 并推送我之前的提交(在以某种方式过滤了我不太理解的电子邮件之后)。但是,我已经有几个 Stargazers
在此 repo 上,我想保留它们。通过制作一个新的回购协议,我相信这些将会消失。
更新 3:
我使用 git filter-repo
将所有电子邮件更改为我的主要电子邮件,现在当我调用 git --no-pager log -s --format="%ae"
时,我以前提交的所有电子邮件似乎都是我的主要电子邮件。但是,我仍然没有看到 activity 显示。例如,如果我去我的回购协议,我可以看到其中一个提交说 Penguin authored and Penguin committed on Apr 8
,但这并没有显示在 activity.
在这种情况下仍应显示贡献。这里是 some of the reasons your contributions might not be being shown:
GitHub 不知道您在提交消息中使用的电子邮件地址
提交不是在默认或 gh-pages 分支中进行的
该仓库是分叉仓库,不是独立仓库
GitHub 还提到它不会显示少于 24 小时前的提交,因此他们的贡献图似乎有某种缓存机制。自您创建回购 public 后等待 24 小时可能会有所帮助,以确保缓存有机会滚动更新。
I noticed that only changes I did on github (the website rather than pushing code from my machine) were recorded.
这意味着您需要从克隆存储库的本地文件夹中检查:
git config user.name
git config user.email
确保它们与您的 GitHub 用户帐户和 GitHub 用户电子邮件匹配。
然后进行一些新的提交,然后推送:看看 activity 是否被反映出来。
OP Penguin confirms in :
Looks like the email wasn't the same (for some reason the email was empty in my local machine).
Now I can push commits through my local machine and they appear as activities.
Is there a way to show my previous commits though?
为此,您需要重写您过去的提交,并强制推送结果(如果您是唯一一个在该存储库上工作的人,则可以)。
见How to switch GitHub account and retrospectively update commit history? for an example, using git filter-repo
(with a mailmap map), or git filter-repo --commit-callback
。
Which I don't quite understand. If I'll create a new repo and push everything to it I will lose the stargazers
您不会创建新的 remote 存储库,只能将其克隆到新的 local 克隆存储库中,然后应用 git 在那里过滤回购。
一旦本地历史与您在提交作者身份方面的期望相匹配,您就强制推回原始远程存储库(及其所有 Stargazers)。
git push --force # at least for the main/master branch
I think git push --force worked. I still see the commits on the commit page as not verified, but the activities appear now.
Is that a problem that they are not verified?
And now it appears that whenever I try to push a commit from my local machine I need to authenticate for some reason
远程身份验证不同于提交作者身份和验证。
验证的方面是由于缺少提交签名,如。
您需要在本地放弃您的提交 (still using git filter-repo
),然后强制再次推送它们。
签名后(使用注册到您的 GitHub 个人资料的密钥),它们将显示为已验证。
带身份验证的 git push
取决于您使用的协议(HTTPS 或 SSH),最近(撰写本文时为 2021 年 11 月)由 torek in "Easy way to switch between accounts on git in the terminal on Windows? 解释。
这可能与您没有使用 GPG 签署提交有关 -
这导致提交,未标记为(身份)“已验证”。
文档也没有涵盖这种情况,至少没有详细说明……虽然最简单的方法可能是创建一个新的存储库,将其添加为远程存储库,然后您可以推送所有更改。即使您所做的编辑不公开可见,GitHub 仍然是您的第三方见证人。
我有一个 6 个月的私人回购协议。今天投稿后终于public了。是否可以使 activity (那些绿色方块)可见?我尝试单击 contribution setting
并收到消息 Visitors will now see your public and anonymized private contributions
,但 activity 仍然没有显示。
更新 1:
我注意到只记录了我在 GitHub(网站而不是从我的机器推送代码)上所做的更改。也就是说,只有 readme
文件显示,因为我经常在网站上更新它。
更新二:
我 运行 git --no-pager log -s --format="%ae"
查看哪些电子邮件用于提交并得到以下信息:
有些邮件是 GitHub 下的 primary
邮件,有些是 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
的内容。但这并没有显示在我的 activity.
最后,一些评论提到在 GitHub 上创建一个新的 repo 并推送我之前的提交(在以某种方式过滤了我不太理解的电子邮件之后)。但是,我已经有几个 Stargazers
在此 repo 上,我想保留它们。通过制作一个新的回购协议,我相信这些将会消失。
更新 3:
我使用 git filter-repo
将所有电子邮件更改为我的主要电子邮件,现在当我调用 git --no-pager log -s --format="%ae"
时,我以前提交的所有电子邮件似乎都是我的主要电子邮件。但是,我仍然没有看到 activity 显示。例如,如果我去我的回购协议,我可以看到其中一个提交说 Penguin authored and Penguin committed on Apr 8
,但这并没有显示在 activity.
在这种情况下仍应显示贡献。这里是 some of the reasons your contributions might not be being shown:
GitHub 不知道您在提交消息中使用的电子邮件地址
提交不是在默认或 gh-pages 分支中进行的
该仓库是分叉仓库,不是独立仓库
GitHub 还提到它不会显示少于 24 小时前的提交,因此他们的贡献图似乎有某种缓存机制。自您创建回购 public 后等待 24 小时可能会有所帮助,以确保缓存有机会滚动更新。
I noticed that only changes I did on github (the website rather than pushing code from my machine) were recorded.
这意味着您需要从克隆存储库的本地文件夹中检查:
git config user.name
git config user.email
确保它们与您的 GitHub 用户帐户和 GitHub 用户电子邮件匹配。
然后进行一些新的提交,然后推送:看看 activity 是否被反映出来。
OP Penguin confirms in
Looks like the email wasn't the same (for some reason the email was empty in my local machine).
Now I can push commits through my local machine and they appear as activities.
Is there a way to show my previous commits though?
为此,您需要重写您过去的提交,并强制推送结果(如果您是唯一一个在该存储库上工作的人,则可以)。
见How to switch GitHub account and retrospectively update commit history? for an example, using git filter-repo
(with a mailmap map), or git filter-repo --commit-callback
。
Which I don't quite understand. If I'll create a new repo and push everything to it I will lose the stargazers
您不会创建新的 remote 存储库,只能将其克隆到新的 local 克隆存储库中,然后应用 git 在那里过滤回购。
一旦本地历史与您在提交作者身份方面的期望相匹配,您就强制推回原始远程存储库(及其所有 Stargazers)。
git push --force # at least for the main/master branch
I think git push --force worked. I still see the commits on the commit page as not verified, but the activities appear now.
Is that a problem that they are not verified?And now it appears that whenever I try to push a commit from my local machine I need to authenticate for some reason
远程身份验证不同于提交作者身份和验证。
验证的方面是由于缺少提交签名,如
您需要在本地放弃您的提交 (still using git filter-repo
),然后强制再次推送它们。
签名后(使用注册到您的 GitHub 个人资料的密钥),它们将显示为已验证。
带身份验证的 git push
取决于您使用的协议(HTTPS 或 SSH),最近(撰写本文时为 2021 年 11 月)由 torek in "Easy way to switch between accounts on git in the terminal on Windows? 解释。
这可能与您没有使用 GPG 签署提交有关 -
这导致提交,未标记为(身份)“已验证”。
文档也没有涵盖这种情况,至少没有详细说明……虽然最简单的方法可能是创建一个新的存储库,将其添加为远程存储库,然后您可以推送所有更改。即使您所做的编辑不公开可见,GitHub 仍然是您的第三方见证人。