1

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

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

事情是这样的(如果可能的话):

  1. 我创建了allinonegit repo
  2. 我创建了proj1git repos,进行了一些开发、提交和完成。
  3. 我在repo中创建了一个proj1分支,并将所有提交日志“导入”到'分支中。allinone proj1allinoneproj1
  4. proj2、proj3 也一样。
  5. 稍后我可以签出 proj1 分支到一个独立的目录。

可能吗?或者有什么建议吗?我不想再买一个回购。

4

2 回答 2

1

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

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

如果您找到一种方法为每个项目拥有一个单独的远程存储库,那么您遇到问题的可能性就会大大降低。git wiki 有一个托管站点列表,其中一些将允许免费托管私有存储库。

于 2013-04-17T04:18:03.870 回答
0

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

我发现每个项目都没有超过一个 repo 的正当理由。

我只能想象必须不断合并所有这些 repo 以保持更新是什么感觉。

在我看来,您应该为每个“项目”创建一个单独的分支,这样您就可以更轻松地维护历史记录、工作流程并减少合并。然而,即使这样也是有缺陷的,因为无论你做什么,你都必须在你的项目中留下一个很大的合并冲突的机会。如果我是你,我会尽我所能减少你的“allinone”回购,并在你做与某​​个“项目”相关的工作时通过检查功能分支来管理它。

祝你好运!

于 2013-04-17T04:12:27.483 回答