是否可以使用一个git repo来管理几个git repos?

时间:2013-04-17 03:39:06

标签: git

我在一个名为allinone的远程服务器中只有一个git repo,但实际上我有几个项目,比如proj1proj2proj3 ,我将所有这些项目存储到allinone,如下所示:

allinone
 |- .git
 |-  proj1/
 |-  proj2/
 |-  proj3/

以下是事情的进展(如果可能的话):

  1. 我创建了allinone git repo
  2. 我创建了proj1 git repos,做了一些开发,提交和完成。
  3. 我在proj1 repo中创建了allinone分支,并在<{1}}的{​​{1}}分支中'导入' proj1使用所有提交日志。
  4. 与proj2,proj3相同。
  5. 稍后我可以将proj1分支机构签出到一个独立的目录中。
  6. 有可能吗?或者有什么建议吗?我不想买另一个回购。

2 个答案:

答案 0 :(得分:1)

Git本身并不要求存储库中的分支之间存在任何关系。因此,您可以创建所需数量的本地存储库,并将所有这些存储库推送到单个远程存储库。如果您仔细设置每个本地存储库使用的refspecs,它甚至可能看起来非常像每个本地存储库都有单独的远程控制器。

但是,您使用的任何提供商都可能检查该类型的使用,特别是如果他们按存储库收费。

如果您找到为每个项目设置单独的远程存储库的方法,则遇到问题的可能性要小得多。 git wiki有一个list of hosting sites,其中一些允许免费托管私有存储库。

答案 1 :(得分:0)

这是糟糕的架构。你通过这种方式管理你的回购自杀。

我发现每个项目都有一个以上的回购协议是没有正当理由的。

我只能想象必须要经常合并所有这些回购以保持更新。

在我看来,您应该为每个“项目”创建一个单独的分支,这将更容易让您维护历史记录,工作流程并减少合并。但是,即使这样也会有缺陷,因为无论你做什么,你都必须为项目中的合并冲突留下大量机会。如果我是你,我会做任何我可能做的事情来削减你的“allinone”仓库,并且当你从事与某个“项目”有关的工作时,通过检查功能分支来管理它。

祝你好运!