3

Visual Studio 可以通过添加新的 Team Project 连接,通过 Team Explorer 连接到 Azure DevOps 项目。

通过连接到团队项目(托管在 Azure DevOps 中),可以查看工作项、构建等:

已连接团队项目的团队资源管理器选项

但是,当 Azure DevOps中的上述项目没有使用 Azure DevOps 内部 Git 存储库,而是使用外部 GitHub 存储库时,就会出现问题。

在 Azure DevOps 中,这个外部 GitHub 存储库设置在: 项目设置 --> 板 --> GitHub 连接,并且工作单元(例如任务)成功链接到 GitHub 存储库中的提交。

Visual Studio 仅支持团队项目的内部 Git 存储库,该存储库是空的,因为正在使用外部 GitHub 存储库。

如果 Visual Studio 直接连接到 GitHub 存储库,则所有 Git 命令都可用,但团队项目链接丢失,并且“工作项”、“构建”等内容不再可用。另一方面,通过连接到 Azure DevOps Team 项目,这些都是可用的,但源代码存储库(在 GitHub 中)不再可用。

这两种选择似乎是相互排斥的。有没有办法在同时使用外部 GitHub 存储库(而不是 Azure DevOps 未使用的内部 Git 存储库)的同时连接到 Azure DevOps 团队项目?

4

2 回答 2

2

有一点技巧...... Visual Studio 中的很多功能都依赖于origin遥控器。如果有多个遥控器,Visual Studio 将点亮遥控器引用的提供程序的功能origin。因此,当您的本地 repo 有多个远程,一个到 Github,一个到 Azure Repos,origin远程中提供程序的附加功能将激活。在这种情况下,您仍然可以从任一遥控器推送/获取/拉取。

所以:

  • 在 Azure Repos 上创建一个存储库(将其初始化为没有README 或 .gitIgnore 的裸存储库)。
  • 从连接窗口在 Visual Studio 中克隆它
  • 从存储库设置或命令行添加第二个远程指向您的 Github 项目。
  • 从 Github 项目中拉取内容

或者:

  • 在 Azure Repos 中创建存储库并复制克隆 url
  • 将本地 git 存储库中的现有远程重命名为github
  • 将 Azure Repos 远程添加到本地存储库的名称下origin
  • 使用该Connect to project...窗口连接到 Azure Repos 存储库。然后从本地存储库打开本地 git 存储库。
  • Visual Studio 应该将两者联系起来。

然后,您可以忽略origin遥控器。它纯粹为 Visual Studio 提供服务,告诉它激活 Azure Boards 和 Azure Pipelines 功能。

这应该让 Visual Studio 认为该项目主要托管在 Azure DevOps 上,您也可以在 GitHub 上进行推送和拉取。

于 2019-06-08T20:52:14.123 回答
0

不是。Azure DevOps 和 GitHub 虽然都归 Microsoft 所有,但它们是独立的服务。

于 2019-06-08T19:43:56.260 回答