使用同一GIT master的多个项目

使用同一GIT master的多个项目,git,project,structure,Git,Project,Structure,在我们的开发环境中,我们有一个定制的框架。虽然我们所有的项目都是从基础开始的,但它是通过使用插件和主题在一个项目一个项目的基础上扩展的 文件夹结构为: 核心(包含所有项目之间的共享代码) 插件(的每个子文件夹都是一个插件,一些存在于所有项目中,一些特定于项目) 主题(仅包含特定于项目的代码) 目前,我们克隆了我们的主repo,删除.git文件夹,创建一个新的repo并进行更改。 如果在项目或主repo中修复了某个功能或bug,我们目前会使用各种diff工具(主要是winmerge)手动合并更

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

文件夹结构为:

  • 核心(包含所有项目之间的共享代码)
  • 插件(的每个子文件夹都是一个插件,一些存在于所有项目中,一些特定于项目)
  • 主题(仅包含特定于项目的代码)
目前,我们克隆了我们的主repo,删除.git文件夹,创建一个新的repo并进行更改。 如果在项目或主repo中修复了某个功能或bug,我们目前会使用各种diff工具(主要是winmerge)手动合并更改,以确保特定于项目的主题或插件不会进入主repo,并且所有项目都具有最新的核心和共享插件

我知道一定有更好的方法来解决这个问题,也许使用子模块? 核心作为子模块,每个插件作为子模块,每个主题作为子模块? 那么每个项目都有自己的回购协议


或者该结构不是此设置的最佳结构?

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


每次更新结构时,只需更新对每个项目的依赖关系,无需再进行复杂的合并

在git repo命名的项目中使用名为PLUGIN的子模块作为PLUGIN,从而允许此repo指向插件的特定版本。因此,如果插件在其自己的repo中发展,PROJET的开发人员将不得不进入projectrepo中的插件目录并发布

git pull
去拿。在开发插件时,只使用稳定版本的插件是有用的

此外,插件的源历史仅在其自己的repo中管理。这是一个更容易理解的发展计划

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