3

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

我有 3 个“耦合”的项目,这意味着对一个项目的更改会影响另一个项目。它们中的每一个都作为单独的 git 项目托管在 github 上。项目有:

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

我需要功能分支、发布分支、修补程序分支和一般发布软件。

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

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

我的问题是这样做有什么缺点?方法似乎有点天真,我想知道有没有更好的方法来实现这一目标?我正在调查,git submodules但似乎他们提供下游并且不允许上游,这将允许我在所有项目中分支和合并。(也许我错了)。

谢谢

4

1 回答 1

1

子模块存在一些问题。此外,这不是 git 中创建子模块功能的目的,我建议不要在您的情况下使用它。

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

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

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

于 2012-11-21T22:51:13.220 回答