如何让 GitHub 忘记或解除我的 repo 最初是另一个项目的分支的关联?
我在 GitHub 上创建了一个项目。我现在可以看到“从任何/任何东西分叉”。不再维护父存储库“whatever/whatever”。我被允许继续使用原始存储库的代码库来创建一个独立的存储库。
有没有办法将我的项目与原始存储库分离?
如何让 GitHub 忘记或解除我的 repo 最初是另一个项目的分支的关联?
我在 GitHub 上创建了一个项目。我现在可以看到“从任何/任何东西分叉”。不再维护父存储库“whatever/whatever”。我被允许继续使用原始存储库的代码库来创建一个独立的存储库。
有没有办法将我的项目与原始存储库分离?
您可以联系 github 支持并要求他们将您的存储库切换到“正常模式”。
在此页面上,“Commit was made in a fork”段落中,解释了必须通过支持才能切换。因此,您自己可能无法做到这一点(除非您销毁并重新创建之前解释过的存储库......如果您这样做,如果您的项目附有票证或维基,请小心被删除!)。
2022 年 1 月更新:
使用https://support.github.com/request/fork上的 GitHub 聊天机器人虚拟助手。
您可以从 GitHub UI 将分叉的存储库复制到一个新的存储库(没有分叉依赖项),然后删除原始的分叉存储库:
注意:这种方法不会保留问题和拉取请求。
确保您在本地存储库中拥有所有重要的分支和标签,删除 github 存储库,通过常规方式(不分叉)重新创建存储库,并使用git push --all
. 请注意,如果您有不想发布的本地分支,则可能值得为该操作创建一个临时的干净本地克隆。
但是,这也将摆脱 wiki 和问题。由于 wiki 实际上是它自己的存储库,因此可以通过克隆它然后重新创建和推送来类似地处理它。仓库地址位于 wiki 的 Git 访问页面 ( git@github.com:user/repo.wiki.git
)。
这留下了问题。它们可以通过API导出,但据我所知,您只能与您的人创建问题和评论,因此无法完美地导入它们。
因此,如果您需要保留问题,您应该按照 Thomas Moulard 的建议通过 github 支持。
我遇到了类似的问题,最后使用这个github 帮助页面来解决它。我不介意 wiki 和问题跟踪器,因为它是为我的博客使用由另一个用户友好开发的主题。
要在多次提交后分离一个分叉的 repo 并将其用作您自己的 repo,而不会丢失整个历史记录:
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 存储库。也就是说,不是在 中创建
<directory>
和放置管理文件,而是将<directory>/.git
其<directory>
本身设为$GIT_DIR
. 这显然意味着 -n 因为没有地方可以检查工作树。远程的分支头也直接复制到相应的本地分支头,而不将它们映射到refs/remotes/origin/
. 使用此选项时,既不会创建远程跟踪分支,也不会创建相关的配置变量。
不是命名要推送的每个 ref,而是指定
refs/
(包括但不限于refs/heads/
、refs/remotes/
和refs/tags/
)下的所有 ref 都镜像到远程存储库。新创建的本地 refs 会被推送到远端,本地更新的 refs 会在远端强制更新,删除的 refs 会从远端移除。如果设置了配置选项,这是默认remote.<remote>.mirror
设置。
注意:与其他git
基于答案一样,这不会复制不属于git
repo 的问题,例如 wiki 和问题。每塔皮奥:
git@github.com:user/repo.wiki.git
。使用您的凭据登录 GitHub。
转到https://support.github.com/contact?tags=rr-forks&subject=Detach%20Fork&flow=detach_fork。
输入 fork 的 URL 或 repo 名称为your-user-name/repository-name
,并回答虚拟助手的其他问题。
您将收到一封带有票号的电子邮件,您可以在其中查看您的请求状态。一旦你的回购被分叉,你也会通过电子邮件收到通知。
注意:我可以在 Chrome 和 Edge 中使用虚拟助手,但不能在 Firefox 中使用。此外,在分离回购后,我的票的状态仍处于待处理状态。我猜 GitHub 最终会在他们的过程中修复这些故障。