在GitHub上有一个公共仓库的私人分支?

时间:2011-11-02 15:45:18

标签: github git-branch fork

我在GitHub仓库中有一个公共PHP项目,它只包含一个分支(主)。

我想要一个独立的分支/分支对我来说是私有的(我已经支付了私人GitHub回购)。我希望能够将私有分支/分支的更改合并到公共仓库,反之亦然。

考虑到这一点,这是我的问题:

  1. 我可以在公共回购中设立私人分支机构吗?
  2. 我可以将自己的公共仓库分配到我自己的私人分支/叉子吗?
  3. 如果以上两种方法都可行,哪种方式最好?如果不是,我该怎么办?

4 个答案:

答案 0 :(得分:84)

  

是否可以在公共仓库上设置私人分支?

在GitHub上,您的存储库是公共存储库或私有存储库;你不能选择性地“私有化”一个分支。

  

我可以将自己的公共仓库分配到我自己的私人分支/叉子吗?

您可以将公共仓库克隆到本地计算机,根据需要进行分支,而不是将上游的“私有”分支推送到上游(通过指定哪个分支推送到原点:git push origin mastergit push origin branch-i-want-to-be-public:master)。

  

这是最好的前进方式/我应该如何进行?

为了利用GitHub进行公共和私人开发,我建议在GitHub中分配您的公共分支,将新分支的设置更改为“Private”,然后将私有版本克隆到您的本地机。当您准备好公开更改时,将所有内容推送到GitHub上的私有分支,然后使用pull requests有选择地将分支复制到公共仓库。

要在GitHub上将存储库设为私有,您必须拥有已升级的(付费)帐户。如果您只是摇摆免费帐户,您仍然可以使用我建议的第一个流程 - 将公共克隆到本地计算机,分支,并将特定的“公共”分支推送到原始 - 无需私有仓库

如果您有付费的GitHub帐户,或正在使用提供公共和私人分叉和提取请求的其他服务(例如BitBucket),那么您可以使用上述任一方法公开您的代码。

答案 1 :(得分:37)

  1. Duplicate your repo
  2. 在GitHub上将复制的repo设为私有仓库。
  3. 将私人仓库克隆到您的机器
  4. 将遥控器添加到您的公共仓库(git remote add public git@github.com:...)
  5. 将针对您的公共存储库提交的分支推送到该新的公共远程控制台。 (确保你不小心提交私有代码)
  6. 您可以使用'git fetch public'将更改引入您的公共仓库,然后将其合并到本地并推送到您的私人仓库(原始远程)。

答案 2 :(得分:8)

我发现还有另一种更好的解决方案,因为它不会导致同一台计算机上的重复存储库。

  • 使用您要私有的内容建立分支。
  • 在GitHub上创建一个新的仓库,将其设置为私有。
  • 将新的GitHub存储库添加为计算机上存储库的第二个远程存储库。
  • 将私有分支推送到第二个遥控器。

最终结果是1个存储库和2个远程存储库。 1个公开,1个私有。
只需注意要按哪个名称进行命名即可。

答案 3 :(得分:1)

  

1。)是否可以在公共仓库上设立私人分支

据我所知,没有。

  

2.。)我可以将自己的公共回购分配到我自己的私人分支

不,你不能把一个完整的仓库(1-n分支)分成一个分支。实际上你可以,如果你只是分叉完整回购的一个分支。只需将其添加为遥控器或从克隆开始。

您可能也对Sparse checkouts感兴趣。

  

3。)如果以上两者都是可能的,这是最好的前进方式

N / A

  

4。)如果两者都不可能,我该怎么办?

N / A

相关问题