ChatGPT解决这个技术问题 Extra ChatGPT

如果我将其他人的私人 Github 存储库分叉到我的帐户中,它会作为公共存储库出现在我的帐户中吗?

有人让我访问了他们在 Github 上的一个私人仓库。我想做的是将该项目分叉到我自己的帐户中,这样我就可以利用 Github 的拉取请求功能。

我在 Github 上只有一个基本帐户,所以我不能自己进行私人回购,但是如果我将别人的私人回购分叉到我的帐户中,它会在我的帐户中显示为公开吗?


f
funroll

不,你可以分叉它,它仍然是私有的。

私人合作者可以在没有自己的付费计划的情况下分叉您已将其添加到的任何私人存储库。他们的分叉不计入您的私有存储库配额。

https://github.com/plans


是的,我读过。我很确定这是一个愚蠢的问题,但你能更详细地说明最后一句话吗?
它仍然是私人的,只是检查了我自己:)
后续问题:如果您撤销对主帐户回购的访问权......它会删除您的分叉吗?或者至少撤销对您自己的分叉的访问权限?
@tslater 当您分叉一个仓库时,您就是所有者,因此即使删除了分叉的父仓库,您的分叉也将保持不变。此外,由于您是分叉的管理员,您仍然可以添加协作者(他们也可以分叉),将所有权转让给任何用户或组织(组织可以添加可以分叉的管理员和只读用户),甚至只需将回购公开。最后,利用这些事实故意欺骗 GitHub 为您提供“免费”的私有存储库是违反他们的服务条款的,如果您尝试这样做,他们可能会删除您的帐户。
@namuol 正如 Planet Bips 的回答中所解释的那样,这已经发生了变化。现在,当在私有存储库中删除主存储库时,会删除分叉。除此之外,如果合作者失去对私人仓库的访问权限,分叉将被删除。 github.com/blog/…
P
Planet Bips

当您撤销主分支(主仓库)上成员的访问权限时,它也会拉出分叉的仓库。因此,如果您将成员添加到团队,并且他们从主存储库分叉,请始终确保您已经合并了他们的更改,或者在将他们从团队中删除之前,您拥有他们的更改副本,因为分叉存储库的成员会被删除当他从团队中被移除时,您将无法获取他的更改(如果您只关心这些)。


您的回答不同意Github help。我自己没试过。
移除团队成员 (help.github.com/articles/…) 和移除协作者 (help.github.com/articles/…) 之间似乎存在差异。这似乎是私人回购是否是组织的一部分(删除分叉)或不是(保存分叉)之间的区别
现在是真的:github.com/blog/…
D
DeveloperAlex

这是 GitHub 的答案:

https://help.github.com/articles/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility/#deleting-a-private-repository

删除私有仓库

当您删除私有存储库时,它的所有私有复刻也将被删除。


好吧,这很愚蠢。我认为分叉本质上是其他人帐户的硬拷贝。那么如何让它永久化呢?下载它然后重新上传它作为一个新项目?
是的@Jon Grah,你会下载并重新上传到硬拷贝,通常软件有一个交接,原作者停止维护并祝福分叉项目的人。如果是这种情况,他们将归档他们的项目并且分叉将持续存在。需要注意的另一件事是,如果存储库被删除但您有本地副本。您的 fork 将在 github 上被删除,但您仍然可以创建一个 repo 添加远程并推送项目。需要分叉的原因之一是,如果发生更改,您可以使用 fork 或 fork with original 更新 original。
M
Mr. Beeblebrox

真实的答案。

有三种类型的存储库。私人、公共和内部。内部的需要企业帐户,所以我们暂时忘记它们。 :)

其中任何一个叉子都保留它的类型。公共仓库的分叉是公共的,私有仓库的分叉是私有的。删除对私有存储库的访问权限会删除该人的复刻。

删除私有存储库会删除它的所有分支,这些分支也是私有的。如果您想保留一份副本,您必须自己克隆并发布。代码许可证可能不允许这样做。删除 PUBLIC 存储库会使所有直接分叉成为新的主控。

只有 master 可以从私有更改为公共,反之亦然。

这样做会断开所有分叉,并使它们成为新的主人,都保留它们现有的类型。

如果您希望删除您的私有存储库而不删除其他(私有)分叉,请先将其公开,这将使所有私有分叉成为私有主库,然后删除存储库。

TL:博士;如果存储库是公开的,则您的分叉是公开的,并且永远存在。如果原始文件是私有的,那么你的分叉是私有的,并且如果 master 有或者你不再有访问权限,你的 fork 就会消失,你将不得不重复克隆和更新以确保保留它。

这应该有望回答有关分叉和删除的所有问题。 :)