【问题标题】:How to use multiple Git repositories in Visual Studio 2017如何在 Visual Studio 2017 中使用多个 Git 存储库
【发布时间】:2017-09-30 02:37:25
【问题描述】:

我的解决方案涉及自托管 Bitbucket 服务器中的三个 Git 存储库。一个用于 iOS 项目的存储库,一个用于共享项目类型的存储库,例如在 Android 等其他项目之间共享的库,然后公司与更多非项目特定的类库共享存储库。

在 Visual Studio 2015 中,我可以转到 Team Explorer 并连接到各种存储库,这样我就可以查看提交历史记录并拥有从 Git 提交或拉取的源代码控制访问权限。在 Visual Studio 2017 中,当我连接到其他存储库之一时,我会从我的解决方案中返回到起始页面。

如何管理组成一个 Visual Studio 2017 解决方案的多个存储库?我现在唯一的选择是使用外部工具,例如Sourcetree

【问题讨论】:

  • 如果从事此项目的每个人都需要访问和/或更改所有三个存储库,一种方法是使用子模块 - 一个存储库是“主”存储库,并且这些库作为子模块被拉入(尽管这并非没有特定于子模块的警告和工作流程问题)。 git-scm.com/docs/git-submodule
  • 对于 VS2015,您可以将多个 repo 从 bitbucket 克隆到本地,但您暂时只能使用一个 repo。 VS2017 也是如此。那么在 VS2015 中管理多个 repos 是什么意思?
  • 在 VS 2015 中,我可以在 VS 提供源代码控制选项的活动存储库之间切换,VS 2017 不这样做,因此我在 VS 2017 中根本无法管理其他两个存储库。Git 子模块和子树不是一种选择,我们最初尝试过,但它只是增加了管理回购的复杂性。
  • 您能否详细介绍一下您在 VS2015 中是如何使用源代码管理选项切换 repos 的?
  • 同样,使用团队资源管理器,管理连接,双击列出的存储库之一。我在 Git 的主团队资源管理器设置中设置了文件夹位置(D:\Dev 包含所有 repo 文件夹)。所以所有的 repos 都被列出来了,我只是不能在它们之间进行更改并保持打开的相同解决方案以供继续使用。更改连接(repos)时解决方案会关闭,这在 VS 2015 中不是这种情况,然后它就起作用了。

标签: git version-control visual-studio-2017 team-explorer


【解决方案1】:

团队资源管理器的设计一直是在关闭包含 Git 存储库并打开另一个存储库时关闭解决方案。如果您在 Visual Studio 2015 中看到不同的行为,那是无意的。

我们希望支持在 Team Explorer 中同时打开多个 Git 存储库,但尚未添加该功能。

团队资源管理器扩展为 Visual Studio 提供 Git 集成。无论您是否使用VSTS,您仍将使用 Team Explorer 在 IDE 中进行 Git 操作。我完全同意为单个解决方案支持多个存储库会很棒。功能已被优先考虑,而这一功能尚未构建。

【讨论】:

  • 谢谢,我建议参考 Xamarin Studio (Mac),因为他们一直在处理这个问题。解决方案/文件资源管理器需要能够处理多个存储库。我应该能够检查项目本身的更改,并且它知道它属于哪个存储库,以及存储库的更改被处理、呈现等。您操作的任何文件(右键单击)解决方案资源管理器应该知道它是什么存储库在并处理更改。由于我不使用团队服务,因此我永远不需要在团队资源管理器中进行任何操作。
  • 团队资源管理器扩展为 Visual Studio 提供 Git 集成。无论您是否使用 VSTS,您仍将使用 Team Explorer 在 IDE 中进行 Git 操作。我完全同意为单个解决方案支持多个存储库会很棒。功能已被优先考虑,而这一功能尚未构建。
【解决方案2】:

目前仍不受支持,因此您必须退出命令行或打开多个 Visual Studio 实例。

但是,对此功能的支持已被报告为“计划中”,您可以投票提高this feature on the Visual Studio User Voice site 的优先级。

【讨论】:

    【解决方案3】:

    如果您切换到另一个 Git 存储库,Visual Studio 2015 和 Visual Studio 2017 都会关闭解决方案。但您可以同时打开三个 Visual Studio 窗口来处理这三个 git 存储库。

    假设位于 D:\Dev\git1D:\Dev\git2D:\Dev\git3 的三个 Git 存储库,并且 Visual Studio(适用于 Visual Studio 2015 和 Visual Studio 2017)与 D:\Dev\git1 连接。

    您可以通过在Windows Explorer中打开文件夹D:\Dev\git2来连接git2,并用相同版本的Visual Studio打开D:\Dev\git2中的.sln文件,然后Visual Studio将连接到另一个Visual Studio中的D:\Dev\git2窗户。您可以通过相同的方式与D:\Dev\git3 联系。您会发现打开了三个 Visual Studio 窗口以连接三个 Git 存储库。

    【讨论】:

    • 问题是我们将 .sln 文件保存在其中一个存储库的单独文件夹中。我想我可以尝试将该解决方案文件夹复制到所有三个存储库中,看看是否可行。
    • 如果你习惯了 git 命令,也可以使用git subtree add --prefix=git2/ <URL for another repo> master
    猜你喜欢
    • 2019-12-13
    • 2018-12-24
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    相关资源
    最近更新 更多