visual-studio - Visual Studio 如何连接到存储库位于 GitHub 上的 Azure DevOps 工作区?

标签 visual-studio github azure-devops azure-boards

Visual Studio 可以通过添加新的团队项目连接,通过团队资源管理器连接到 Azure DevOps 项目。

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

Team Explorer options for a connected Team Project

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

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

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

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

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

最佳答案

这里有点小窍门……Vis​​ual Studio 中的很多功能都依赖于 origin 远程。如果有多个远程,Visual Studio 将点亮 origin 远程引用的提供程序的功能。因此,当您的本地存储库有多个 Remote 时,一个到 Github,一个到 Azure Repos,origin Remote 中提供程序的附加功能将激活。在这种情况下,您仍然可以从任一远程推送/获取/拉取。

所以:

  • 在 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 上进行推送和拉取。

关于visual-studio - Visual Studio 如何连接到存储库位于 GitHub 上的 Azure DevOps 工作区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56509563/

相关文章:

c++ - 如何通过 .props 文件设置调试符号路径

bash - 使用 bash、cURL 和 GitHub API 从命令行 fork GitHub 存储库

git - 如何删除 Github WebView 中显示的 git 中的未命名分支

来自 GitHub RPC 的 git clone 失败;结果=56,HTTP 代码

linux - 如何在 CentOS (Linux) 上安装 vNext 构建代理?

azure-devops - 从 Azure Devops 中删除用户是否会删除他们上传的内容?

visual-studio - Visual Studio 分支机构

c++ - 编辑并继续在 VS2015 Update 3 (x64) 中不起作用

visual-studio - NuGet 包显示黄色感叹号

azure - 在带有 Linux 容器代理的 Azure DevOps 上的 powershell 脚本中使用环境变量