一个解决方案中是否可以有多个 git 项目?

问题描述

我有一个比较全面的解决方案,其中包含大约 20 个项目。其中一个项目是“Utils”,我想将其分享给其他解决方案。不幸的是,如果我将此项目作为链接项目添加到另一个解决方案中,那么该项目没有将我上传到 Git 以获取解决方案,因此无法进行团队合作。因此,我正在寻找一种解决方案来实现我可以在各个解决方案之间共享该项目的源代码。我使用 VS2019 并作为 Git 存储库 xxx.visualstudio.com。谢谢你的建议。

解决方法

如果做一个 nuget 包对你来说不是一个解决方案,因为它增加了太多的摩擦(即使你也可以访问 util 存储库),并且你希望能够直接从更新“Utils”源sln 文件,那么您的解决方案是使用 Git submodules

来自文档:

经常发生在处理一个项目时,您需要使用其中的另一个项目。也许它是第三方开发的库,或者您单独开发并在多个父项目中使用的库。在这些场景中会出现一个常见问题:您希望能够将这两个项目分开处理,但仍然能够在另一个项目中使用一个。

您必须为“Utils”代码创建一个存储库,并将其作为子模块包含在其他存储库中。

但是Visual Studio still no support it...

这并不严重,因为您仍然可以从命令行或支持它的外部 git GUI(例如 GitExtensions)使用它。