删除一个GitHub仓库的fork依赖

我怎样才能让GitHub忘记或解散我的回购原本是另一个项目的分叉?

我在GitHub中分出了一个项目。 我现在可以看到“从任何/任何东西分出来”。 父存储库“whatever / whatever”不再被维护。 我被允许继续使用原始存储库的代码库来创build一个独立的存储库。

有没有办法将我的项目从原始存储库中分离出来?

您可以联系github支持,并要求他们将您的存储库切换到“正常模式”。

在这个页面上 ,“提交在一个分支”段落,它是解释,一个必须经过支持切换。 因此,自己可能无法做到这一点(除非您销毁并重新创build之前解释过的回购协议,如果您这样做时要小心,如果您有门票或附加在项目上的wiki,被删除!)。

确保你的本地仓库有所有重要的分支和标签,删除github仓库,通过通常的方式(不分叉)重新创build仓库,然后用git push --all仓库git push --all回去。 请注意,如果您有不想发布的本地分支机构,则可能需要为该操作创build临时清理本地克隆。

但是,这也将摆脱维基和问题。 由于wiki实际上是它自己的存储库,所以可以通过克隆它然后重新创build和推送来处理它。 回购地址位于wiki的Git Access页面( git@github.com:user/repo.wiki.git )。

这留下了问题。 他们可以通过API输出,但据我所知,只能与你的人创build问题和意见,所以完全导入他们是不可能的。

所以,如果你需要保留的问题,你应该像Thomas Moulard所说的那样,通过github的支持。

我得到了类似的问题,并最终使用这个github的帮助页面来解决它。 我不介意维基和问题跟踪器,因为它是我的博客使用由另一个用户友好开发的主题。

要分离一个分叉的回购,并使用它作为你自己的几个承诺,而不会失去整个历史:

git clone --bare git@github.com:user/forked_repo.git

在github网站上创build一个新的空的reposity new-repository 。 并推送一个镜像版本:

cd user.github.com.git/

git push --mirror git@github.com:user/new-repository.git

可以在github上重命名,用另一个名字将forked_repository保存为备份,并在需要时检查更新。 或者干脆删除它。

new-repository重命名为原来的名称就可以完成这项工作。 作为副作用,您的提交现在出现在您的历史logging中。

使用来自aurelien和克莱顿的信息,我能够做到这一点与以下几点:

 $ git clone --bare https://github.com/my/forked_repo.git <delete forked_repo on GitHub> <recreate repo on GitHub using same name> $ cd forked_repo.git $ git push --mirror 

这里是git clone --bare的文档 :

制作一个纯粹的Git仓库。 也就是说,不是创build<directory> ,而是将pipe理文件放在<directory>/.git $GIT_DIR ,使<directory>本身成为$GIT_DIR 。 这显然意味着-n,因为无处检查工作树。 此外,远程的分支机构直接复制到相应的本地分支机构,而不会将它们映射到refs/remotes/origin/ 。 使用此选项时,不会创build远程跟踪分支和相关configurationvariables。

这里是git push --mirror的文档 :

指定refs/ (包括但不限于refs/heads/refs/remotes/refs/tags/ )的所有refs/tags/被镜像到远程仓库,而不是命名每个ref。 新创build的本地参考将被推送到远端,本地更新的参考将在远端强制更新,删除的参考将从远端移除。 如果设置了configuration选项remote.<remote>.mirror则这是默认值。

注意:像其他基于git的答案一样,这不会复制不属于git repo的问题,例如wiki和问题。 每Tapio:

  • 维基是一个单独的git回购,可以按照Tapio类似的方式处理。 地址是: git@github.com:user/repo.wiki.git
  • 问题可以通过GitHub API导出,但由于只能由用户创build问题,因此存在问题,因此导入操作将丢失信息。

这仅适用于GitHub Enterprise,而不适用于github.com

login到具有pipe理员权限的帐户:

  1. 转到您需要分离的存储库: https://<ghe url>/<org>/<repo>
  2. 点击右上angular的“Site Admin”火箭
  3. 点击左侧窗格中的“networking”
  4. 点击networking结构窗格中的“Make Root”
  5. 接受

这在GitHub Enterprise 2.9上进行了testing