具有相同GIT主控的多个项目

时间:2013-10-14 08:54:11

标签: git project structure

在我们的开发环境中,我们有一个自定义框架。虽然我们所有的项目都是从基础开始的,但它是通过项目基础使用插件和主题扩展到项目。

文件夹结构为:

  • core(包含所有项目之间的共享代码)
  • 插件(每个子文件夹都是一个插件,一些存在于所有项目中,一些是项目特定的)
  • 主题(仅包含项目特定代码)

目前我们克隆我们的主仓库删除.git文件夹,创建一个新的仓库并进行我们的更改。 如果在项目或主仓库中修复了一个功能或错误,我们目前手动将更改与各种差异工具(主要是winmerge)合并,以确保项目特定的主题或插件不会进入主仓库并且所有项目都有最新的核心和共享插件。

我知道必须有一个更好的方法来使用子模块吗? 核心作为子模块,每个插件作为子模块,每个主题作为子模块? 那么每个项目都是自己的回购?

或者这种设置的结构不是最好的?

2 个答案:

答案 0 :(得分:2)

为您的核心项目和继承的项目使用不同的存储库。 所有继承的项目都应该包含你的骨架项目作为依赖项,maven允许你处理它。

每次更新结构时,您只需要更新每个项目的依赖性,不再需要进行棘手的合并

答案 1 :(得分:0)

在名为PROJECT的git仓库中使用名为PLUGIN的子模块作为插件,允许此repos指向该插件的特定版本。因此,如果插件在自己的存储库中发展,PROJET的开发人员将必须进入PROJECT repo中的插件目录并发出

git pull

得到它。只有在开发时才能使用稳定版本的插件。

此外,插件的源历史记录仅在其自己的仓库中进行管理。这是一个更容易理解的开发方案。

当您拥有包含二进制/数据使用集的repo时,使用子模块也很有用,并且具有大量的历史记录管理。所以它不会减慢你的其他回购。