git最佳实践建议

时间:2014-11-19 15:36:43

标签: git

我正在设置git存储库,但我来自SVN的背景。

这就是我想要的:

产品存储库 - 这些产品可以单独捕获单个产品(例如应用程序,库)

  • 申请A
  • 申请B
  • 图书馆C
  • 。 。 。

项目存储库 - 它们捕获产品的聚合,以形成特定客户的解决方案。

  • Project X存储库
  • Project Y repository
  • Project Z repository
  • 。 。

每个项目都将由不同的产品组合构成。例如, 项目X由应用程序A,应用程序B和一些项目特定代码构成。项目Y由应用程序B,应用程序C和应用程序D构成,具有项目特定的代码和设置。你明白了。

在SVN中,项目存储库将使用SVN-externals来包含产品版本。

我是否可以使用上面详述的存储库概念来实现这一点,或者考虑到git的强大功能,我是否应该考虑使用完全不同的技术?

2 个答案:

答案 0 :(得分:3)

考虑使用Git子模块。详细信息可在Submodules chapter of the free online Git book中找到。从书中引用:

  

子模块允许您将Git存储库保存为另一个Git存储库的子目录。这使您可以将另一个存储库克隆到项目中,并使您的提交保持独立。

答案 1 :(得分:1)

在我公司,我们遇到了同样的问题。我们解决了这个问题,重新思考我们的存储库的结构和使用方式。特别是:

  • 常用代码变为共享库
  • 我们开始使用包管理系统(rpm),这允许引入依赖关系。例如:项目X有自己的文件,但也依赖于包A和库C