在git上管理更直接连接的项目

时间:2012-11-16 13:58:13

标签: git github

首先让我道歉,如果我提出重复的问题,因为有非常相似的问题,但没有一个解决我的问题。

我有3个“耦合”的项目,这意味着一个项目的更改将影响另一个项目。他们每个人都作为单独的git项目托管github。项目是:

  • server(... foo / server.git)
  • cli client(... foo / cli-client.git)
  • 网络客户端(... foo / web-client.git)

我需要功能分支,发布分支,修补程序分支以及一般发布软件。

显然,web / cli客户端上的更改与服务器上的更改相结合,当我需要分支时,我需要在每个项目上创建分支(分支通常在原点完成,因此整个团队可以协作)。在我需要合并回主人之后等等......

我想避免这种情况,并有机制允许我同时分支,版本。对此的明显答案是创建父项目,该项目将每个项目作为子文件夹,最后将父项目保留在一个git仓库中。

我的问题是这会有什么缺点?方法似乎有点幼稚,我不得不怀疑是否有更好的方法来实现这一目标?我正在研究git submodules,但似乎它们提供下游并且不允许上游,这将允许我在所有项目中进行分支和合并。 (也许我错了)。

谢谢

1 个答案:

答案 0 :(得分:1)

有一些issues with submodules。此外,这不是git中创建的子模块功能,我建议不要在你的情况下使用它。

您有3个项目彼此松散相关,而不是三个存储库中的一个项目。客户端应用程序正在使用Server和Web应用程序正在使用Server。有时,但并非总是如此,一个项目中的分支名称与另一个项目中的分支名称相同,但从git的角度来看,这是纯粹的巧合。

我见过很多具有类似工作环境的开发团队,他们都使用了单独的存储库和单独的分支。通常,关于给定主题的工作在一个项目中完成,或者在它们在另一个项目中开始之前的几周或几周内完成(或者根本不需要更改其他项目)。

但是,如果您觉得需要自动执行此过程,可以编写一个简单的shell脚本“create-branch-on-all-projects.sh”和“merge-branch-on-all-projects.sh”