visual-studio-2015 - 如何在解决方案中将 GitLab 与多个项目文件夹一起使用?
问题描述
我是版本控制的新手,并且在 gitlab.com 上实现了一个 GitLab 组和其中的一个项目。
我在 Visual Studio 中开发了几个应用程序 - 解决方案使用驻留在我计算机上单独文件夹中的项目。
例如:
- DLL A 和 B 位于我工作区的不同文件夹中,应用程序 X 可能使用 A,而应用程序 Y 可能使用 A 和 B。
- DLL X 和 Y 位于它们自己的文件夹中。
我为其中一个 DLL 实现了版本控制,但是当我尝试从 MSVS 内部对应用程序 X 执行相同操作时,我收到一条错误消息,因为构成解决方案的不同项目(在本例中为 A 和 X)是不同的文件夹。
这是一个限制,还是有办法让解决方案有两个存储库,一个处理 DLL A 的版本控制,一个处理 X 的可执行代码的其余部分。
当我打开 X 解决方案时,我在团队窗口中看到所有 A 版本,但没有尝试为构建应用程序的代码添加 git 存储库,即上面描述中的 X。
解决方案
Visual Studio Git 或“团队”功能仅处理单个存储库。
此功能的状态“On Roadmap”中有一个功能请求,因此他们计划实施它。
您仍然可以使用 Visual Studio 在各个存储库之间切换并随后处理它们,或者您可以使用第三方工具来处理 Git 版本控制。例如 TortoiseGit,您可以从右键单击上下文菜单在 Windows 资源管理器中使用它。
忽略 Visual Studios 的限制,您有很多选择来处理依赖项及其版本控制。
如果它们是不同的组件,您可以让它们生成 NuGet 包,并将它们添加为依赖项。
如果您想在一个工作区和存储库中一次编辑它们(无需间接单独的 VS 实例并且必须单独构建 NuGet 包),那么您可能需要使用 git 子模块 - 进行一个引用并签出另一个在子文件夹中。
子模块使管理代码变得更加困难和不那么简单,因为您将在存储库中拥有一个存储库。在与他们合作时,拥有一些关于他们的技术知识肯定会有所帮助。
推荐阅读
- git - git stash 是一直保存代码还是只保存到下一个垃圾收集?
- sql - Postgresql 12 EXECUTE STATEMENT WITHIN IF STATEMENT 引发语法错误
- java - 项目反应堆:无限(永无止境)通量
- java - JAX-RS 服务事务超时
- angular - Angular 中的 Visual Studio 代码:无法读取未定义的属性,如何修复?
- database - 如何建模一个值是原始值还是修正值?
- solr - Solr 缺少必需的 uniqueKey 字段:id 或未知字段
- php - PHP将浮点数作为时间返回?
- java - 尝试传递二维数组时出现不兼容类型错误
- java - 将 JSON 映射到 java POJO (jackson)