Answers:
您可以联系github支持并要求他们将您的存储库切换到“正常模式”。
在此页面的 “使用叉子进行提交”段落中,说明必须经过支持才能切换。因此,很可能是没有办法做到这一点自己(除非你破坏并重新创建您的回购这之前...解释的。如果你这样做要小心,如果你有票或维基连接到你的项目,因为它们会删除!)。
您可以将分叉的存储库从github UI复制到新的存储库(无分叉依赖),然后删除原始的分叉的存储库:
确保您在本地存储库中具有所有重要的分支和标签,删除github存储库,通过通常的方式重新创建存储库(不分叉),然后使用将本地存储库推回git push --all
。请注意,如果您有不想发布的本地分支,可能值得为该操作创建一个临时的干净本地克隆。
但是,这也将摆脱Wiki和问题。由于Wiki实际上是其自己的存储库,因此可以通过克隆它,然后重新创建并推送来进行类似处理。回购地址在Wiki的Git访问页面(git@github.com:user/repo.wiki.git
)上。
这留下了问题。可以通过API导出它们,但据我所知,您只能与您的人员创建问题和评论,因此无法完美导入它们。
因此,如果您需要保留问题,则应按照Thomas Moulard的建议接受github支持。
我遇到了类似的问题,并最终使用此github帮助页面来解决它。我不介意Wiki和问题跟踪器,因为我的博客使用的是由另一个用户友好开发的主题。
要分离一个分叉的仓库并在几次提交后用作您自己的仓库,而不会丢失整个历史记录:
git clone --bare git@github.com:user/forked_repo.git
new-repository
在github网站上创建一个新的空存储库。并推送一个镜像版本:
cd user.github.com.git/
git push --mirror git@github.com:user/new-repository.git
一个可以在github上重命名,forked_repository
使用另一个名称将其保留为备份,并在需要时检查更新。或者直接删除它。
重命名new-repository
为原始名称即可完成工作。副作用是,您的提交现在会出现在您的历史记录中。
这仅适用于GitHub Enterprise,不适用于github.com
登录到具有管理员权限的帐户:
https://<ghe url>/<org>/<repo>
这已经在GitHub Enterprise 2.9上进行了测试
使用来自aurelien和Clayton的信息,我可以通过以下方式做到这一点:
$ 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存储库。也就是说,不要
<directory>
将管理文件创建和放置在其中<directory>/.git
,而<directory>
应将自身设置为$GIT_DIR
。显然,这意味着-n,因为没有地方可以检出工作树。同样,将远程站点的分支头直接复制到相应的本地分支头,而无需将其映射到refs/remotes/origin/
。使用此选项时,不会创建远程跟踪分支或相关的配置变量。
这是有关的文档git push --mirror
:
代替命名每个裁判推的,则指定下的所有参考文献
refs/
(包括但不限于refs/heads/
,refs/remotes/
和refs/tags/
)被镜像到远程存储库。新创建的本地裁判将被推送到远程端,本地更新的裁判将在远程端强制更新,而已删除的裁判将从远程端删除。如果remote.<remote>.mirror
设置了配置选项,则这是默认设置。
注意:像其他git
基于答案的答案一样,这不会复制不属于git
仓库的问题,例如Wiki和问题。每个Tapio:
git@github.com:user/repo.wiki.git
。