删除一个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理员权限的帐户:
- 转到您需要分离的存储库:
https://<ghe url>/<org>/<repo>
- 点击右上angular的“Site Admin”火箭
- 点击左侧窗格中的“networking”
- 点击networking结构窗格中的“Make Root”
- 接受
这在GitHub Enterprise 2.9上进行了testing