有一个Quick framework here的公共存储库。我希望能够将其派生到一个私有的企业级GitHub存储库中。派生将允许所有分支保留。另一种方法是克隆回购协议并只将一个分支推到企业,但这样我就失去了来自源/原始的所有分支。update:最后我把我所有的分支都推送到了企业级git中。如果你只是做一个git push yourRemoteName myNewBranch,那么它会在企业级GitHub中创建分支的同时把代码推送到企业级git上的那个分支中。
gfttwv5a1#
这是不可能的,因为您的GitHub Enterprise(GHE)安装与公共安装是分开的,因此两个系统无法跟踪彼此的分支关系。你能做的最好的事情就是像你描述的那样:克隆repo,然后将其推送到GHE安装,是的,您将丢失repo之间的分支关系。另一个选择是在公共GitHub(GH)repo上保留一个fork--可能会使它与GHE repo保持同步(手动,或使用cronjob)。这样你就有了两个repo示例,而公共的repo将保留与原始repo的分支关系。取决于你为什么需要把它放在GHE上,它可能会工作,也可能不会工作。如果你是做私人贡献,它显然不会工作--因为你的私人贡献将不再是私人的。如果你想把它放在GHE上是因为一些公司政策,所有内部使用的开源项目都保存在GHE上,或者类似的东西,那么它会工作。同时增加了保持两个位置的回购同步的管理开销。
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
--mirror
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。
ylamdve63#
如果你使用GitHub Enterprise,那么你会自动获得GitHub Enterprise Cloud的访问权限,即https://github.com/enterprises/mycompany,使用相同的许可证数量。这可以通过SAML链接到你内部的Active Directory。然后你可以简单地在GitHub中派生它,但仍然保持在你公司的控制之下。遗憾的是,如果你真的需要在你的内部示例上使用镜像克隆,你仍然需要镜像克隆。不过,现在你控制了两端,你应该能够使用GitHub Actions(或Apps)更智能地保持它们同步。
3条答案
按热度按时间gfttwv5a1#
这是不可能的,因为您的GitHub Enterprise(GHE)安装与公共安装是分开的,因此两个系统无法跟踪彼此的分支关系。
你能做的最好的事情就是像你描述的那样:克隆repo,然后将其推送到GHE安装,是的,您将丢失repo之间的分支关系。
另一个选择是在公共GitHub(GH)repo上保留一个fork--可能会使它与GHE repo保持同步(手动,或使用cronjob)。这样你就有了两个repo示例,而公共的repo将保留与原始repo的分支关系。
取决于你为什么需要把它放在GHE上,它可能会工作,也可能不会工作。如果你是做私人贡献,它显然不会工作--因为你的私人贡献将不再是私人的。如果你想把它放在GHE上是因为一些公司政策,所有内部使用的开源项目都保存在GHE上,或者类似的东西,那么它会工作。同时增加了保持两个位置的回购同步的管理开销。
gopyfrb32#
虽然无法从公共GitHub***直接***分叉到您的企业安装,但您可以在公共GitHub上分叉,然后将分叉的仓库镜像到您的企业安装上。
下面的示例展示了如何在没有GitHub CLI的情况下执行此操作。
步骤
1.在企业级GitHub上创建一个空仓库:
1.创建派生
的裸克隆
1.更改目录,使您位于空克隆文件夹中:
1.将带有
--mirror
标志的仓库推送到企业GitHub详细信息
创建令牌: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。
ylamdve63#
如果你使用GitHub Enterprise,那么你会自动获得GitHub Enterprise Cloud的访问权限,即https://github.com/enterprises/mycompany,使用相同的许可证数量。这可以通过SAML链接到你内部的Active Directory。然后你可以简单地在GitHub中派生它,但仍然保持在你公司的控制之下。
遗憾的是,如果你真的需要在你的内部示例上使用镜像克隆,你仍然需要镜像克隆。不过,现在你控制了两端,你应该能够使用GitHub Actions(或Apps)更智能地保持它们同步。