取消分叉Github叉子而不删除


79

我想“取消” GitHub分支而不删除+重新创建它。这可能吗?

我的原因是我的项目现在与fork的源完全不同,并且显示提前的提交次数或pull request按钮(或至少如此突出)毫无意义。事后看来,我想我会选择git clone原版的,而不是制作叉子。

我不想删除我的fork,以保留问题和发出的拉取请求的历史记录。

我很高兴保留提交的历史记录,只是删除了我追寻的fork状态。


我想知道通用git存储库的解决方案是什么,而不是GitHub。
Arj

1
@Arj我给人的印象是fork是一个特定于GitHub的概念,所以我怀疑没有解决方案,因为没有问题!
Michal Charemza

我没有意识到这是特定于GitHub的,谢谢!但是我正在使用Atlassian Stash,它也允许使用分叉,因此为什么我必须假定它是通用的。我可能会在他们的论坛上闲逛。
Arj

Answers:


23

我记得大约一年前在GitHub的帮助页面中读到过有关此内容的信息。他们提到要联系GitHub员工解释您的情况。工作人员会做有需要的。


编辑

浏览完GitHub页面列表后,我发现我对实际任务有些不满意。我记得的页面是“转移存储库”;尤其是:

如果传输的存储库有任何fork,则在传输完成后,这些fork将与新存储库相关联。请记住,分叉您的存储库的用户将需要更新其远程URL以指向新的Git存储库,以便继续打开请求请求。


与您的特殊问题联系工作人员,并请他们将您的叉子与网络分开,还是值得的。


10
我通过github.com/contact与工作人员联系,解释了我的情况,现在他们将其取消了分叉。或使用他们的术语“提取到自己的fork网络中”。谢谢!
Michal Charemza 2015年

66

na na Github比您想像的强大得多。

毫无疑问,除了复制所有代码外,别无他法。但是,复制过程可以由Github本身完成。因此,无需费心用我们自己的带宽来镜像代码。

一步步:

  • 点击右上角的“ +”,选择“导入存储库”
  • 粘贴旧的仓库网址(例如https://github.com/user/repo)并输入新名称。
  • 点击“开始导入”

做完了 复制完成后,Github甚至会给您发送电子邮件通知。

经过测试,可以与我自己的项目配合使用。是个好功能吗?


3
这也会带来问题吗?
克里斯·安德森

1
@ChrisAnderson我没有尝试过,但我想没有。因为它接受任何有效的git url,所以我猜它几乎可以完成所有工作git clone --bare
ttimasdf

2
+1这应该是公认的答案。因此,您只需要重命名分支的存储库,然后使用原始名称导入到新的存储库。
qsp

46

此方法将创建一个新的“未分叉”存储库,同时保留所有其他内容(提交历史记录,分支和标签)。

如何通过四个简单步骤“取消”项目:

  1. git clone --bare https://github.com/{username}/{repository}
  2. https://github.com/{username}/{repository}/ settings中删除原始存储库。
  3. {repository}https://github.com/new上创建名称为新的存储库。
  4. cd {repository}.gitgit push --mirror https://github.com/{username}/{repository}

并做了!


还应该指出“ 2.5。使用旧名称创建新存储库”。-否则推送通知remote: Repository not found.
BartBiczBoży

4
幸运的是,OP提到“我不想删除我的fork,以保持问题和发出请求的历史记录。”
Arcesilas

它不维护请求请求。有没有一种方法可以保持拉取请求在未分叉的情况下进行?
user1858796

您还需要重新创建任何秘密github.com {username} / {repository} / settings / secrets
rectalogic

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.