链接https://help.github.com/articles/removing-a-collaborator-from-a-personal-repository/表示在设置中可以进行此操作,但我没有看到任何协作者:
链接https://help.github.com/articles/removing-a-collaborator-from-a-personal-repository/表示在设置中可以进行此操作,但我没有看到任何协作者:
以下方法在我的情况下有效。
我有多个 GitHub 帐户用于不同项目和社区。但是不小心使用了错误的帐户提交了一次提交。我更改了提交的作者,但是错误的帐户仍然出现在 GitHub 仪表板的贡献者列表中。这种方法可以保留提交历史记录以及 GitHub 操作设置和问题历史记录,但我没有检查拉取请求是否被保留。
git rebase
方法从贡献者中删除提交,然后2)重命名主分支,3)再将其重命名回来。非常感谢@www_runner的评论! - Benjamin RAIBAUD你无法删除贡献者(至少不建议这样做,因为这会改变历史记录)。
这些用户在您的存储库历史记录中有提交,因此代码行已由他们添加。即使您删除了他们所有的代码行,他们仍将显示为贡献者。
贡献者并非合作者。
合作者是由存储库所有者授权具有直接访问权限(通常是写入权限)的贡献者,这意味着他们不需要分叉存储库,可以被指派到问题等其他任务。
我不小心从一个旧账号提交了代码。即使我已经移除了这次提交,旧账号仍然留在贡献者列表上。为了让它从列表中消失,我必须从GitHub上删除这个旧账号。
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
'
为什么最好不这样做?因为它会带来一些严重的副作用,例如使所有后续的提交哈希值无效,正如Peter Reid所提到的。
在GitHub存储库设置中将存储库的可见性从公共更改为私有
,然后再从私有更改为公共
。
注意:
为使此操作生效,您必须与该用户没有任何关联,例如提交、发布、其他分支中的提交或标记。
注意:
您将失去所有存储库的星标和观看次数。如果您关心星标,请先使用其他风险较小的方法。
这是可能的,但可能会有挑战。
您需要重写历史(通常不建议这样做)。
如何做到呢?
exec git commit --amend --author="{NewAuthorName} <{NewAuthorEmail}>" -C HEAD
Watch this explanation https://www.youtube.com/watch?v=7RZgtT4cbw0.在双方更新后,等待几分钟,然后它应该会从名单中删除贡献者。
贡献者基本上是存储库中任何提交的作者。我曾经在我的存储库中的作者列表中不小心放了一个错误的电子邮件,然后github开始在存储库中显示一个新的贡献者。我尝试 撤销提交,但没有帮助。最终我不得不创建/重命名/删除原始存储库。
repo2
只是远程仓库的本地名称,您将从中拉取提交。 - ViFI这里的所有答案都对我没用。我做了以下操作并成功:
git-filter-repo
工具更改指向另一个帐户的所有提交电子邮件(两个),像这样。第二点可能是不必要的。
(在执行此操作之前,请创建适当的备份)
假设您要删除的贡献者提交后没有太多提交记录。
简而言之:将更改还原到用户没有贡献需要被删除的阶段 ---> 创建一个新分支并将其设置为默认,这样可以强制github.com刷新贡献者列表 ---> 将设置更改回旧分支作为默认。 您可以删除您创建的临时新分支。
我来到这个问题是因为我不经思考地在同事下载的我的存储库副本上工作,而不是在我的本地副本上。
我没有更改已下载的存储库的GIT电子邮件,因为我(愚蠢地)从他的下载中复制了存储库,所以我推送到GitHub的所有内容都归功于他的帐户,使用他设置的电子邮件地址(无意识地)在他登录GitHub并下载我的存储库时(在“.git”文件夹中)。
一旦我检查并更改了该存储库的电子邮件为我的电子邮件(请参见下面的两个命令,在存储库目录中执行),我的推送就被正确归属:
git config user.email
git config user.email myemail@mydomain.com
很遗憾,如果要删除他在这些提交中的一些作为贡献者的身份需要进行大量的操作,但他是一个值得信赖的同事和朋友,所以我能够接受这种情况。
.git
文件夹。接着在本地初始化一个新的仓库git init
,创建一个新的 Github 仓库,并将你的新本地仓库上传到 Github 上。显然,这样做会移除所有的仓库历史记录! - Ari