在GitHub上拥有公共回购的私人分支机构?

在GitHub上拥有公共回购的私人分支机构?,github,git-branch,Github,Git Branch,我在GitHub repo中有一个公共PHP项目,它只包含一个分支(master) 我想有一个单独的分支机构/分支机构,对我来说是私有的(我已经为私有GitHub回购支付了费用)。我希望能够将私人分支机构/分支机构的变更合并到公共回购,反之亦然 考虑到这一点,以下是我的问题: 我可以在公共回购中拥有私人分行吗 我可以将我自己的公共回购协议转入我自己的私人分支机构/分支机构吗 如果上述两种方法都可行,那么哪种方法是最好的?如果两者都没有,我应该如何进行 1.)是否可以在公共回购协议中设立私人分支机

我在GitHub repo中有一个公共PHP项目,它只包含一个分支(master)

我想有一个单独的分支机构/分支机构,对我来说是私有的(我已经为私有GitHub回购支付了费用)。我希望能够将私人分支机构/分支机构的变更合并到公共回购,反之亦然

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

  • 我可以在公共回购中拥有私人分行吗
  • 我可以将我自己的公共回购协议转入我自己的私人分支机构/分支机构吗
  • 如果上述两种方法都可行,那么哪种方法是最好的?如果两者都没有,我应该如何进行
  • 1.)是否可以在公共回购协议中设立私人分支机构

    据我所知,没有

    2.)我可以将自己的公共回购协议转入自己的私人分行吗

    不,你不能把一个完整的回购(1-n个分支)分成一个分支。事实上你可以,只要你把全部回购的一个分支交出来。只需将其添加为远程或从克隆开始

    你可能也会对它感兴趣

    3.)如果上述两种方法都可行,那么哪种方法是最好的方法

    不适用

    4.)如果两者都不可能,我应该如何继续

    不适用

    是否有可能在公共回购协议中设立私人分支机构

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

    我可以将我自己的公共回购协议转入我自己的私人分支机构/分支机构吗

    您可以将公共回购克隆到本地机器上,根据需要进行分支,而不将“私有”分支推送到上游(通过指定要推送到源站的分支:
    git-push-origin-master
    git-push-origin-branch-i-want-to-be-public:master

    哪一个是最好的前进方向/我应该如何前进

    为了利用GitHub进行公共和私有开发,我建议在GitHub中分支公共分支,将新分支的设置更改为“private”,然后将私有版本克隆到本地机器上。当您准备公开更改时,将所有内容推到GitHub上的私有fork上,然后使用它选择性地将分支复制到公共回购

    要在GitHub上将存储库设置为私有,您必须拥有一个升级的(付费)帐户。如果你只是在摇免费帐户,你仍然可以使用我建议的第一个过程——克隆公共到本地机器、分支,并将特定的“公共”分支推送到源站,而不需要私人回购

    如果您有一个付费GitHub帐户,或者正在使用另一个提供公共和私有fork和pull请求的服务(例如),那么您可以使用上述任一方法将代码公开

  • 在GitHub上将复制的回购协议设置为私有回购协议
  • 将私有回购克隆到您的计算机
  • 将远程添加到公共repo(git remote Add publicgit@github.com:…)
  • 将具有用于公共回购的提交的分支推送到新的公共远程服务器。(请确保您不会意外地提交专用代码)
  • 您可以使用“git fetch public”将更改引入公共repo,然后在本地合并这些更改并推送到您的私有repo(远程源)

  • 我发现还有一个更好的解决方案,因为它不会导致在同一台机器上重复回购

    • 用你想要的东西做一个分支
    • 在GitHub上进行新回购,将其设置为private
    • 将新的GitHub repo作为第二个远程设备添加到您机器上的repo
    • 将专用分支推送到第二个远程分支
    最终结果是1个存储库和2个远程服务器。1个公共,1个私人。

    只需要小心推送到哪个位置,以便相应地命名。

    将公共存储库作为私有存储库不是最好的主意,在私有存储库中创建几个分支,而不推送(返回)到公共存储库(反之亦然)?这就是我要问的,我希望能够创建一份公共回购协议的副本,但我的更新是私有的(除非我想将特定内容推回到公共回购协议)@assylias,你能把它作为一个答案吗?在我看来,这是最好的答案,在我自己找到这篇文章之前,我没有注意到你的评论。@mbh86这不是一个真正的答案,只是一个链接,我没有时间把它变成一个答案。但是,如果你想使用该页面的内容在这里创建一个答案(参考原始站点),它肯定会帮助其他用户,你会得到我的支持:-)GitHub不允许你将公共回购的分支变成私有。你必须复制回购以使其私有,然后您将失去与公共回购的连接。我想知道您是否可以将公共回购作为单独的远程设备添加到您的本地私有回购克隆中。然后将分支推送到远程。不幸的是,这意味着不可能使用拉请求将更改从私有“fork”拉到存储库的公共副本。GitHub现在为免费帐户提供无限的私有存储库。考虑到推荐的工作流,这真的不应该是最好的答案(来自私人分支的PR)不起作用。@mj1531的答案是一个更好的工作流程。复制对我来说很好,尽管我必须按相反的顺序进行,首先创建私人回购,然后从命令行复制公共回购。谢谢!