是否可以在 Github 中“分叉”?

Posted

技术标签:

【中文标题】是否可以在 Github 中“分叉”?【英文标题】:Is it possible to 'fork a fork' in Github? 【发布时间】:2011-10-04 07:06:17 【问题描述】:

我目前正在从事一个项目,该项目是我一直从事的框架的衍生(分支)。

这个项目本来是非常通用的,但现在我需要为我的客户再次分叉代码库。

此时,我已经为我的客户创建了一个自定义分支,但我宁愿为此拥有一个独立的存储库。

是否可以“分叉”? 如果没有,我还有什么选择?

情况概要:

框架存储库(原始) 通用应用程序存储库(fork) (尚未) 客户端存储库(应用程序的分支)

注意:在 Github 中尝试“fork a fork”时,您将收到一条通知,表明您已经对项目进行了 fork:

【问题讨论】:

我不明白为什么不可能...你试过了吗? @Felix 啊,也许我应该澄清一下。这不可能。更新了帖子以反映这一点。 哦,好的(:()。该项目也被 GitHub 称为 fork 是否重要(可能是因为拉取请求..)?否则您可能能够克隆他们的“真实”存储库并稍后将其添加为 GitHub 项目... @Felix 我想​​到了。可能是一个可能的替代方案,是的。不过,我仍然希望保留整个分叉历史。 我明白了...无论如何,我建议联系 GitHub 支持(如果您还没有这样做的话)。 【参考方案1】:

现在这很有可能。你只是去你想分叉的叉子 然后像往常一样点击“fork”。这仅适用于您 在您的帐户中没有该存储库的其他分支 不过,已经。如果这样做,则必须将其删除。

iFreilicht在评论中回答

既然这是现在的正确答案,最好突出显示它。

【讨论】:

这不是一个正确的答案,因为这个人不想删除他的原始存储库,他/她现在想再次分叉他们的修改。【参考方案2】:

我就这个“问题”联系了 GitHub 支持,他们确认这是不可能的。此外,未来不太可能实现这样的功能。

【讨论】:

我们有一个可靠的场景,这个功能是必需的。 2015 年:Github 还坚持不支持这个用例吗? 现在非常有可能。你只要去你想分叉的叉子,然后像往常一样点击“叉子”。不过,这仅在您的帐户中没有该存储库的其他分支时才有效。如果这样做,则必须将其删除。这是一个示例:github.com/tmk/tmk_keyboard/network/members 他们应该支持同时拥有原始 repo 的 fork 和 fork 的 fork。他们只需要跟踪父 repo id 即可工作。 两年后仍然不可能。我今天也遇到了同样的问题。在我的情况下,原始项目已经死了,所以可以创建一个我仍然需要维护的原始项目的克隆。但是,如果我想为同一个项目的两个分支做出贡献怎么办? 同样的问题。这充其量是非常有问题的设计,根本没有意义。【参考方案3】:

简单的回答:是和否。

不,对于单个帐户,因为您无法创建两个具有相同名称的存储库(并且分叉始终具有相同的名称)。

是的,适用于多个帐户。所以你可以为你的第二个分叉设置一个组织。

【讨论】:

@Korakter 这似乎是问题所在:原始项目是个人的,分支是组织的。第三个应该是有组织的…… 看不出问题:只要第二个和第三个repo进入不同的组织,就可以了。 这仍然是问题所在;我不想为此创建另一个组织帐户,因为从技术上讲,它仍然是同一个组织,而且这些都是付费帐户。 你应该使用分支,而不是分叉。 @Koraktor:“无法创建两个具有相同名称的存储库(并且分叉始终具有相同的名称)。”您不能在管理 > 设置 > 存储库名称中重命名存储库吗?【参考方案4】:

现在,有一个下拉箭头,您可以选择基础存储库

【讨论】:

你能详细说明在哪里可以找到这个吗?

以上是关于是否可以在 Github 中“分叉”?的主要内容,如果未能解决你的问题,请参考以下文章

我可以使分叉的 github 存储库从原始版本中保持最新吗? [复制]

将 Git 存储库从 GitHub 分叉到 GitLab

从分叉存储库中发布来自 GitHub 操作的评论的解决方法

将原始 GitHub 存储库中的新更新拉入分叉的 GitHub 存储库

将原始 GitHub 存储库中的新更新拉入分叉的 GitHub 存储库

在分叉和改进 Github 存储库后,我应该更改 package.json 中的作者吗?