这取决于这些项目之间的关系有多密切。请问自己以下几个问题:
如果将它们放在一个仓库中,则上述部分内容将更容易处理。您只需要在一个存储库中执行分支/标记/存储/提交等操作,而不是为每个存储库单独执行它们。
但是,如果您需要为每个项目拥有独立的版本发布周期,那么必须将每个项目放在独立的存储库中。
请注意,您始终可以在以后拆分存储库,或者将多个存储库合并成一个而不会丢失历史记录。
相比较而言,合并仓库比拆分仓库更难一些,因此我建议先选择一个存储库,看看情况如何再说。
我有多个项目(Eclipse 项目),已经尝试了不同的方法,以找出在实际日常开发中工作最好的方法。以下是我发现的结果,我认为如果其他人跟踪并客观地分析结果,他们也会得出相同的结论。
简而言之,应用以下规则将获得最佳结果:
以下准则更详细地解释了确定哪些项目应放在同一存储库中的过程:
如果一个项目与任何其他项目不紧密相连(例如,可以打开该项目,而不必打开其他项目,并且没有其他项目依赖于打开项目时打开它),那么您一定要将其放入自己的存储库中,原因请参见上面的答案。
如果一个项目依赖于其他项目或其他项目依赖于该项目,则取决于它们之间的连接程度,它们如何打包在一起以及它们是否可以轻松地从彼此解耦。
A) 例如,包含 Junit 测试类以测试主项目类的测试项目是两个非常紧密相连的项目,可以轻松地打包在一起,不能轻松地从彼此解耦。这些项目应根据下面部分 C 中的原因放置在同一存储库中。
B) 如果一个项目依赖于另一个项目提供某种共享资源,那么它实际上取决于它们如何一起管理以及如何轻松地解耦。例如,如果有多个项目依赖共享资源项目,则应将其放在自己的存储库中,因为与共享源代码项目的更改会影响其他不相关项目。在这种情况下,应该将共享资源项目与依赖项目解耦,而不是直接连接到依赖项目。(例如,最好创建版本化的归档文件 [名称为“projectName”.1.0.1.0.jar之类的Jar文件],并在每个项目中包含副本,而不是通过将项目链接在一起共享资源。)我每个项目使用一个仓库。
一些论据:
当你发现自己在多个提交后搞砸了一些东西时,如果只有一个项目,修复起来会更容易。想想看,你已经在另外两个项目上提交了代码,并且现在你需要修复第三个项目的提交。
正如Fedir所说,你的历史和记录更加清晰。它只显示该项目的提交记录。
它可以更好地适应我的开发工作流程。生产环境中有一个主分支,开发环境中有一个develop分支,我创建分支来实现功能(你可以在这里阅读更多内容:http://blog.avirtualhome.com/development-workflow-using-git/)
当你在团队中工作并“共享”git repo时,团队成员真的需要所有其他项目吗?
这只是一些想法,但归根结底:做适合你的事情。
我认为这个问题与我在这里回答的问题有关。基本上,Git通过其本质支持项目/存储库的非常细粒度结构。我阅读并且被告知每个项目一个存储库几乎总是最佳实践。通过保持项目分开,你不会失去任何东西,并获得像其他人描述的那样很多好处。
如果您创建多个Git存储库,可能会更加高效。
如果您创建分支,只有项目文件会被分支,而不是所有项目。对于小型项目,分析和提交将更快。操作所需的时间更少。
日志也将更清晰,如果您有多个Git存储库,则可以进行更精细的配置。