如何git 一个框架项目对多个项目进行版本控制?

How to git version control multiple projects with one framework project?

好吧,我看了一下这个 post GIT Version Control setup for multiple projects with shared code,但事实证明我真的不认为它能准确地回答我想要的,因为它太复杂了(我猜)我需要的。

我在一家公司工作,我们有超过 4 个项目。它们目前仅在一个存储库中由 SVN 进行版本控制。我们正在转向 GIT,我找到了很多关于 GIT 或 SVN 的技术答案,但我正在寻找的是关于版本控制的一般用法的理论答案。

我们的一个项目是一个插件,我们将其用作几乎所有项目的框架。插件是项目之间的共同点,但这是唯一的共同点,因为其他项目彼此完全不同。

有时我正在做一个项目,我必须更改我们用作其他框架的插件中的某些内容,例如为项目提供多租户支持,而其他人可能在同时在另一个项目中工作并更改框架插件中的某些内容。

我上面描述的情况让我认为我不能将每个项目放在不同的存储库中,因为它们都需要框架插件。然而,所有项目(完全)不同,这让我觉得我应该将它们每个都托管在不同的存储库中。

问题是:我应该为所有人使用一个存储库还是为每个存储库使用一个存储库?

只要您已经开始朝着 Git 迈进 - 不要停下来! Git 有一个 submodules 的概念,您会发现它在您的情况下非常有用。

此外,恕我直言,为所有代码创建一个存储库并不是一个好主意,因为它是一个 good practice to have one repo per app

根据您在项目中使用的语言,尝试从每个共享代码库创建一个 "library",并从可用于该堆栈的 dependency management 中获益。