有没有可能把一个公共的GitHub仓库分叉到一个企业仓库中?

4sup72z8  于 2022-12-02  发布在  Git
关注(0)|答案(3)|浏览(191)

有一个Quick framework here的公共存储库。我希望能够将其派生到一个私有的企业级GitHub存储库中。派生将允许所有分支保留。
另一种方法是克隆回购协议并只将一个分支推到企业,但这样我就失去了来自源/原始的所有分支。
update:最后我把我所有的分支都推送到了企业级git中。如果你只是做一个git push yourRemoteName myNewBranch,那么它会在企业级GitHub中创建分支的同时把代码推送到企业级git上的那个分支中。

gfttwv5a

gfttwv5a1#

这是不可能的,因为您的GitHub Enterprise(GHE)安装与公共安装是分开的,因此两个系统无法跟踪彼此的分支关系。
你能做的最好的事情就是像你描述的那样:克隆repo,然后将其推送到GHE安装,是的,您将丢失repo之间的分支关系。
另一个选择是在公共GitHub(GH)repo上保留一个fork--可能会使它与GHE repo保持同步(手动,或使用cronjob)。这样你就有了两个repo示例,而公共的repo将保留与原始repo的分支关系。
取决于你为什么需要把它放在GHE上,它可能会工作,也可能不会工作。如果你是做私人贡献,它显然不会工作--因为你的私人贡献将不再是私人的。如果你想把它放在GHE上是因为一些公司政策,所有内部使用的开源项目都保存在GHE上,或者类似的东西,那么它会工作。同时增加了保持两个位置的回购同步的管理开销。

gopyfrb3

gopyfrb32#

虽然无法从公共GitHub***直接***分叉到您的企业安装,但您可以在公共GitHub上分叉,然后将分叉的仓库镜像到您的企业安装上。
下面的示例展示了如何在没有GitHub CLI的情况下执行此操作。

步骤

1.在企业级GitHub上创建一个空仓库:

curl https://github.yourenterprise.com/api/v3/user/repos \
  -H "Authorization: Bearer YOUR-TOKEN" \
  -u "yourUsername" \
  -d "{\"name\": \"whatever-repository\", \"private\": true }"

1.创建派生

git clone --bare https://github.com/publicGitHubUser/forked-repository.git

的裸克隆
1.更改目录,使您位于空克隆文件夹中:

cd ./whatever-repository.git/

1.将带有--mirror标志的仓库推送到企业GitHub

git push --mirror https://github.yourenterprise.com/enterpriseGitHubUser/forked-repository.git

详细信息

创建令牌:https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
复制存储库:https://help.github.com/articles/duplicating-a-repository/
Rest API简介:https://docs.github.com/en/rest/guides/getting-started-with-the-rest-api
编辑:当通过curl使用您的个人访问令牌进行身份验证时,请将更新信息发送到@yuri-feldman。

ylamdve6

ylamdve63#

如果你使用GitHub Enterprise,那么你会自动获得GitHub Enterprise Cloud的访问权限,即https://github.com/enterprises/mycompany,使用相同的许可证数量。这可以通过SAML链接到你内部的Active Directory。然后你可以简单地在GitHub中派生它,但仍然保持在你公司的控制之下。
遗憾的是,如果你真的需要在你的内部示例上使用镜像克隆,你仍然需要镜像克隆。不过,现在你控制了两端,你应该能够使用GitHub Actions(或Apps)更智能地保持它们同步。

相关问题