如何将两个分支推送到两个单独的GitHub遥控器?

时间:2012-12-11 01:33:43

标签: git github

我有一个项目,其中data文件夹需要私有(但由VCS跟踪)。所以GitHub上的整个git回购都是私有的。然而,这些代码对很多人来说非常有用,所以我想保持这种公开。

目前我的repo只有masterdev。一旦dev中的功能正常运行,它们就会合并到master中。我想创建一个no_data分支并将其推送到公共GitHub仓库。 master应继续跟踪私人仓库。我已经有了一个私有的GitHub回购(让我们称之为private_project)。我可以为project分支创建一个名为no_data的公共仓库。

问题:
a)如何设置它以便每个分支跟踪一个单独的回购?

b)由于两个分支之间唯一不同的是公共文件夹将忽略data/文件夹,我只是计划将其添加到.gitignore文件中。但是,我希望其余代码在两个分支中保持不变。所以我担心每次将master合并到no_data时,我都必须手动解析.gitignore合并。

1 个答案:

答案 0 :(得分:1)

别。这必然导致白天或其他方面的错误。

data目录设为 submodule ,其拥有远程上游回购(“private_project”一个),用其父级仓库(具有上游仓库'public_project')声明。

这样,您可以将父回购的任何分支推送到'public_project':这没关系。
克隆'public_project'时其他贡献者所能得到的只是完整的回购加上对另一个回购('private_project')的引用,他们无法访问(因为它是私有回购)。
请参阅“How exactly does git submodule work?”。