Git 从分叉项目中分离出来

Git 从分叉项目中分离出来,git,github,Git,Github,因此,我的一个存储库最初是从别人遗忘的项目中派生出来的;现在已经到了这样一个地步,代码实际上是100%我自己的代码,与原始项目相比是无法识别的 我的问题是,在保留提交历史记录的同时,是否可以将fork与当前项目分开?您(至少)有2个选项: 请GitHub支持人员删除源repo和您的源repo之间的链接。这个没有用户界面,但他们可以帮你。我不得不自己做一次 重建回购协议 重新创建回购协议非常简单: 更新本地克隆:git fetch origin 签出您关心的远程分支 或者签出所有远程分支:git

因此,我的一个存储库最初是从别人遗忘的项目中派生出来的;现在已经到了这样一个地步,代码实际上是100%我自己的代码,与原始项目相比是无法识别的

我的问题是,在保留提交历史记录的同时,是否可以将fork与当前项目分开?

您(至少)有2个选项:

  • 请GitHub支持人员删除源repo和您的源repo之间的链接。这个没有用户界面,但他们可以帮你。我不得不自己做一次
  • 重建回购协议
  • 重新创建回购协议非常简单:

  • 更新本地克隆:
    git fetch origin
  • 签出您关心的远程分支
    • 或者签出所有远程分支:
      git branch-r | grep-v HEAD |同时读取b;do git checkout$(basename$b);完成
  • 将GitHub上的repo重命名为
    repo-bak
  • 使用原始名称在GitHub上创建新的回购协议
  • 推送所有本地分支:
    git推送原点--all
  • 推送标签:
    git推送原点——标签

  • 你是说在GitHub上分叉,你想让你的分叉成为源回购而不是分叉?我认为这在GitHub是不可能的。不仅如此,如果您的客户拥有软件许可证,那么即使您对代码进行了重大修改,您也可能仍然受到该许可证条款的约束。但这取决于许可证。许可证是麻省理工学院的,但是项目和代码现在完全不同了,都是我自己的代码(意味着许可证不再适用)。如果他的代码在某种程度上仍然很重要,那么许可证就很重要,但是由于他的代码在项目中根本不存在,因此许可证就没有什么可应用的。除此之外,我想将这些项目分开的唯一原因是为了避免混淆。非常感谢,我最终重命名了原始回购协议(以保留历史),并以旧名称创建了一个新的回购协议。但很高兴知道Github的员工会这么做