从github.com删除贡献者?

use*_*096 7 git github

如何删除贡献者在项目主页面中的显示:

在此输入图像描述

链接https://help.github.com/articles/removing-a-collaborator-from-a-personal-repository/说它可以在设置中,但我没有看到任何合作者:

在此输入图像描述

www*_*ner 69

下面的方法至少适用于我的情况。

  1. 在 GitHub 网页上,更改分支名称(例如 main --> main1)。它更新了我的 GitHub 存储库仪表板上的贡献者列表。
  2. 然后将其改回来(main1 --> main)。

我有多个 GitHub 帐户用于不同的项目。每个针对不同的社区。但不小心,我使用了错误的帐户推送了提交。我更改了提交的作者,但 GitHub 仪表板上的贡献者列表中仍然存在错误的帐户。我的方法保留提交历史记录以及 GitHub 操作设置和问题历史记录。但我没有检查拉取请求是否被保留。

  • 可以确认这效果很好。通过 GH 支持将分叉存储库与原始存储库分离后,这非常有用。 (7认同)
  • 为我工作,删除了作为作者的错误帐户的“不良”提交。 (7认同)
  • 更改分支名称对我来说不起作用。 (7认同)

use*_*965 12

我不小心从旧帐户推送了提交。即使我删除了提交,旧帐户仍然在贡献者列表中。我不得不从 GitHub 中删除旧帐户以使其从列表中消失。Gah,我们为强迫症所做的事情......


Pet*_*eid 11

你不能(至少没有重写历史 - 这是非常不推荐的).

这些用户在您的存储库历史记录中提交了提交,因此他们添加了代码行.即使您删除了所有代码行,它们仍将显示为贡献者.

贡献者不是合作者.

协作者是存储库所有者授权的贡献者,可以直接(通常是写入)访问存储库,这意味着他们不需要对存储库进行分支,并且可以将其分配给其他问题.

  • 这发生在我身上。我重命名了我的用户 ID,但被其他人盗用了。我在存储库中有一些条目,名称为 userid@github。现在他们以贡献者的身份出现,尽管他们与我的项目无关。很烦人。Github 需要允许您将提交归因于您想要的任何人,而不仅仅是存储库历史记录中的用户电子邮件。 (3认同)

san*_*eni 7

更改 GitHub 存储库设置中的存储库可见性,public to private然后private to public再次更改。

笔记:-

为了使这项工作正常进行,您不得将与该用户相关的任何内容与存储库链接,例如提交、发布、其他分支中的提交或标签。

警告:-

您将失去所有的回购明星和观看次数。首先,如果您关心明星,请使用其他风险较小的方法。

  • 对我来说唯一可行的解​​决方案(2023 年 8 月) (4认同)
  • 这句话根本行不通! (3认同)

dim*_*im8 6

你不能删除它,但你可以改变他们的名字(到你的)。但是,我强烈建议不要这样做,因为这会影响所有其他合作者和贡献者(见下文)。

这在此处详细描述。简而言之,您必须使用filter-branch,例如通过以下脚本:

git filter-branch --env-filter '
if [ "$GIT_AUTHOR_NAME" = "OLD NAME" ]; then \
    export GIT_AUTHOR_NAME="NEW NAME" GIT_AUTHOR_EMAIL="new.name@mail.com"; \
fi
'
Run Code Online (Sandbox Code Playgroud)

最好不要的原因- 它带来了一些严重的副作用,例如使所有后续提交哈希无效,正如Peter Reid也提到的。


Mis*_*sky 6

这是可能的,但可能具有挑战性。

您需要重写历史记录(通常不建议这样做)。

怎么做?

  1. 您应该重写贡献者的所有历史提交并将提交更改为不同的作者。有一些方法可以做到这一点,我发现最简单的是通过更改作者对现有提交执行修改。例如:在提交选择下面你应该写:
    exec git commit --amend --author="{NewAuthorName} <{NewAuthorEmail}>" -C HEAD
    
    Run Code Online (Sandbox Code Playgroud) 观看此说明https://www.youtube.com/watch?v=7RZgtT4cbw0
  2. 当贡献者在历史记录中没有任何提交后 - 更新任何 GitHub 设置以刷新列表,然后等待几分钟。例如,您可以更新存储库 => 设置 => 代码和自动化 => 分支 => 默认分支下的默认分支名称。然后返回原来的分支名称。

两次更新后,等待几分钟,它应该会从列表中删除贡献者。