如何在同一个大型 git 存储库中使用 Jenkins 处理多个项目?

cdj*_*djc 5 git jenkins

我们有一个相当大的 git 存储库(大约 8Gb),其中有许多不同的项目。我希望 Jenkins 能够构建每个项目,而无需每个项目都克隆每个项目的整个存储库。

我们最近从 SVN 切换到 git,我正在更新 Jenkins 以使用 git。使用 SVN,我可以简单地进行部分结帐以获得每个项目所需的内容。有人告诉我,我们不会将大型 git 存储库拆分为较小的存储库。

据我所知,有以下三种方法:

  1. 每个项目的 git 克隆。最简单,但占用大量空间。如果可能的话,我们希望避免这种情况。
  2. 一个“主”git 克隆,每个项目都从中进行本地克隆(git 可以使用硬链接节省空间 - 这是在 Linux 上)。这对于设置和让 Jenkins 识别需要构建的更改来说似乎相当复杂。
  3. 一种没有本地克隆,而是直接从远程获取每个项目所需文件的方法。但不确定这将如何运作。

有没有我错过的可行选择?哪个是最好的选择?

这类似于Jenkins:如何从 git 存储库构建多个顶级项目?但是,我认为,这个问题足够不同,值得提出。