如何取消 GitHub 仓库的分支派生?

162

如何取消GitHub存储库的分叉?

我从未见过unfork选项 - 是否可能这样做?


我认为你可以做的是要么提交一个拉取请求来合并分支,要么删除已经派生的存储库。 - EpicPandaForce
8
在GitHub上fork太容易了。当我只想查看已有的forks时,我经常会错误地点击它。 - mwfearnley
1
可能是GitHub:将fork变成“自己的项目”的重复问题。 - 0 _
可能是Unfork a Github fork without deleting的重复问题。 - ben rudgers
2
可能是 从 GitHub 中删除 forked 仓库 的重复问题。 - Val
是的,很多“forks”只是因为误点而产生的结果。 - 9ilsdx 9rvj 0lo
7个回答

161

更新:现在有自动化解决方案

请参见https://dev59.com/91kT5IYBdhLWcg3wRNet#66470086

原帖内容

目前为止,Github没有取消派生的选项,所以唯一的解决方案是删除已经派生的仓库。

警告:以下解决方案将会删除你的克隆仓库。 如果你想要在不删除仓库的情况下取消派生,请尝试这个https://dev59.com/-10b5IYBdhLWcg3wUP0X#41486339

步骤1:打开想要取消派生的仓库的设置页面

步骤2:点击删除此仓库 enter image description here

步骤3:输入你的名字/仓库名称

步骤4:点击“我了解后果,删除此仓库”按钮

enter image description here


47
这将简单地删除存储库。如果你想要“取消派生(unfork)”而不删除它,请尝试这个答案:https://dev59.com/-10b5IYBdhLWcg3wUP0X#41486339。 - Tiago A.
10
是的,这会删除仓库。不要这样做! - mikecousins
3
这是对完全不同问题的回答,不应标记为解决方案。 - Michael
1
@Michael 即使链接的答案也是要删除存储库,但他们没有给出删除步骤,所以我决定提供这些步骤(FYI:62人喜欢这个答案)。 - Naveen DA
1
分叉会创建一个存储库的副本。撤销分叉意味着删除该副本。如此简单,可惜撤销误点击的选项如此隐藏。我不明白为什么有这么多人故意不理解“撤销”这个词。对于出色的回答点赞。 - 9ilsdx 9rvj 0lo
显示剩余12条评论

48

1
在没有这个功能的情况下,这还是相当不错的。 - EightyOne Unite
我尝试过这个,但对我没有用。 - user12741503

22

选项1:重命名、导入、删除

  1. 将旧的分支重命名(例如repo.old

  2. 将旧的分支作为新的仓库导入(注意:提供旧分支的https://git:// URI)

  3. 删除/归档旧的分支

注意:在创建内容时,“导入”选项是一种选择:

"Import repository"

选项2:克隆、删除、创建、推送

  1. 备份你的仓库!例如,使用git clone命令将其克隆到本地文件系统。
  2. 从GitHub中删除原始仓库(参见其他答案...)。
  3. 创建一个同名的新仓库。
  4. 将本地备份推送到新的GitHub仓库。

我建议选择选项1。

无论你选择哪种方法,都要备份你的工作!特别是如果你按照其他答案所说,直接删除你的仓库...


老实说,我以为他们有 unfork 功能......但是,这是一个更加详细的有效方法 :) - aemonge

7

在不删除存储库的情况下取消派生

  1. 访问此链接:https://support.github.com/request?q=unfork
  2. 点击“我们的虚拟助手可以帮助您分离/取消派生存储库”
    screenshot
  3. 点击“分离” screenshot
  4. 它会要求您提供存储库链接
  5. 完成。

1

没有通过Web门户进行操作的方法(不需要像其他回答中描述的克隆/删除存储库)。我向GitHub支持提交了请求,要求将存储库转换为“正常模式”,他们在五分钟内完成了操作。


他们也为我在5分钟内完成了。 - qwr

0

您可以随时提交工单,让GH支持团队为您将其从分叉网络中分离出来。这样,您就可以保留关注者、问题等信息。


你确定 GitHub 提供这个操作作为支持操作的服务吗? - nilsandrey
我不确定你在问什么。你能否提交一个工单并请求这个?是的,正如其他人已经确认的那样。你可能需要从根所有者那里获得许可。 - user14702727

0

这是可能的,按照以下步骤操作:

1- 首先进入父项目并更改其可见性 2- 然后对子项目执行相同操作

3- 然后将所有存储库恢复到初始可见状态。

这对我有用。希望对你也有帮助。


您的回答可以通过提供更多支持信息来改进。请[编辑]以添加更多细节,例如引用或文档,以便他人可以确认您的答案是否正确。您可以在帮助中心找到有关如何撰写好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接