Microsoft的GitHub释放“Visual Studio代码”扩展名,允许编辑而无需克隆存储库

2021-06-13 02:54:55

我们很高兴为Visual Studio代码展示新的远程存储库扩展!这是我们在GitHub的与我们的朋友合作建立的新经验,以便在VS代码内快速安全地使用源代码存储库。

在VS代码中,我们从一开始就提供了对Git的综合支持,我们通过扩展支持许多其他源控制管理(SCM)提供商。这使得开发人员克隆并直接在VS代码中与存储库一起工作。

但是,每天都有大部分开发人员涉及阅读其他人和#39; S代码:查看拉出请求,浏览开源存储库,试验新技术或项目,检查依赖于调试应用程序的上游依赖项等这些共同之处就是作为第一步,您通常会在本地克隆存储库,然后在您喜欢的代码编辑器中打开代码(我们希望是VS代码!)。然而,克隆储存库需要时间,如果您忘记拉动,可能会导致您审核一个过时版本的回购版,如果您'重新享用代码,有时会有安全风险。

由GitHub发布的新的远程存储库扩展,使VS Code Instant和Safe中的开放源代码存储库的体验。有了这个,您可以快速浏览,搜索,编辑和提交任何远程Github存储库(且很快,Azure Repos),直接从VS代码内,无需克隆!

您可以根据您的喜好工作,而无需保存计算机上的任何源代码。远程存储库可节省您的时间和本地磁盘空间,并授权您在VS代码内保持所有源控制任务。

在这个博客帖子中,我们探索了使用远程存储库的开始探索,在打开第一个远程仓库后,您可以在支持此虚拟环境的技术详细信息,以及如何为我们提供最新的技术细节。

让'在VS代码中打开远程仓库。首先,确保已安装远程存储库扩展名。

目前,远程存储库支持GitHub Repos,支持即将推出Azure Repos。在此博客文章中,我们' ll首先打开VS代码存储库(Microsoft / vscode)。

安装远程存储库扩展后,我们通过单击VS代码左下方(以及您已安装的任何其他远程开发扩展的命令以及您安装的任何其他远程开发扩展的命令以及来自您已安装的任何其他远程开发扩展的命令,从而即时访问其开放远程存储库命令:

如果您以前的VS代码登录到Github,则会提示您提示您验证GitHub帐户。一旦登录,搜索repo或pr,选择您想要的一个,' ll准备好了。

在下面的短视频中,我们搜索并选择VS代码回购,VS代码重新加载,以及repo' s内容加载,就像我们在本地克隆一样:

你'重新探索并贡献回购,而不是留下vs代码。您觉得自己'使用熟悉的VS代码界面处理本地代码,并且可以使用像VS Code Expler,搜索,时间轴视图,快速打开等功能等功能。

你现在连接到什么是虚拟工作空间的'有关下面的虚拟工作空间的更多信息);遥控指示符读取" github。"将鼠标悬停在远程指示器上时,已通知您在虚拟工作空间中不可用的功能不可用:

虚拟工作空间是一个特殊设置,一些功能,如扩展,禁用或具有有限的功能。您可以轻松地通过单击遥控指示器悬停时显示的某些功能链接来禁用哪些扩展。

单击链接显示禁用哪个扩展,哪些功能有限。在扩展范围内悬停时,可以看到有限的功能。

如果您想在虚拟工作空间中手动启用扩展,则可以使用用户设置中的Extensions.supportVirtualworkspace设置.json文件。

请记住,可能无法实现扩展以处理虚拟工作空间而无需访问本地文件系统,因此扩展可能无法按预期工作。

远程存储库每次都可以帮助您留在最新版本的Repos上,没有任何复杂的Git命令。

随时您打开新的仓库,您打开最新版本。当远程存储库检测到GitHub有新的更改时,它将列出需要在状态栏中拉下来的提交:

当您提交更改时,它们会自动显示在GitHub上 - 您不需要按下更改或发布您创建的任何新分支机构。

远程存储库适用于GitHub Pull请求和问题扩展,这允许您直接在VS代码中查看和管理从GitHub的拉拔请求和问题。使用两个扩展并行,以快速检查PRS并在不必本地克隆代码或留下VS代码的问题。

您可以根据该更改进行更改,创建新的分支和拉拔请求(PR),然后查看PR,只需点击几下即可。

您可以在使用Github文章时了解有关GitHub拉请求和问题扩展的更多信息。

您可能需要在完成工作时切换分支机构。在典型的环境中,当您需要决定填充或提交的更改时,这可能会变得棘手。

远程存储库可让您同时轻松地在不同的分支上工作。暂停在一个分支上工作并切换到一个新的,你赢得了' t被问到藏起的变化 - 它们' ll自动停留在以前的分支上。当您回到以前的分支时,您的更改仍将存在,并且您可以在您离开的地方拾取。

在状态栏中,选择当前分支以打开分支列表,例如和#34; Main&#34 ;:

调试,终端和任务 - 目前尚未支持。在本地文件系统上打开终端,DON' t可访问远程存储库的虚拟文件系统。

有限的语言智能 - IntelliSense这样的功能并转到定义可能会影响许多语言Don' T但是了解远程存储库的虚拟环境。

搜索 - GitHub搜索本身具有限制,例如不索引分支。远程存储库可以避免此限制并通过启用索引来执行全文搜索。索引从GitHub中拉动存储库的浅克隆,并在本地执行完整的搜索,提供比Github' S模糊默认分支本机搜索的更大的功率。您可以从“搜索”视图中的远程存储库中启用索引。

扩展限制 - 并非所有扩展都可以支持在虚拟工作空间中运行,但更多的扩展将随时间支持它。大量依赖于对本地文件访问的扩展无法支持此设置。有关详细信息,请参阅下面的虚拟工作区部分。

我们刚刚开始这一旅程,因此希望该功能集成长,并随着我们继续开发的缩减限制。

使用远程存储库,VS代码在不可用的环境中运行,因为没有物理文件系统。这很快很快开始浏览存储库,但是当你&#39时呢?准备做更多"高级"工作,如:

您希望积极地在存储库上工作,并获得VS代码的全部权力。

您需要通过定期从遥控器中拉动来主动跟踪存储库的更改。

要移动到更高级的工作流程,远程存储库为您提供了一种方式为您提供"升级"您的环境并继续您的工作,从您目前的任何地方都可以拿起。

克隆存储库本地:将当前的仓库克隆到本地计算机。将弹出本地文件资源管理器,允许您在磁盘上选择一个位置以克隆远程repo。

克隆存储库在容器卷中:使用远程容器扩展(您' ll需要安装远程容器扩展和docker)克隆Docker容器卷中的当前仓库。 VS代码将使用远程容器重新加载和连接,远程指示灯现在将读取DEV容器:{Image Name}。

在代码空间中打开:继续您在GitHub代码空间中的工作。选择此选项时,浏览器将打开并将您指向此存储库的代码空间列表。

现在,我们探索了如何在VS代码中使用远程存储库,我们喜欢描述一些提供经验的技术细节,以及如何确保您的扩展将在远程存储库会话中工作。

作为最终用户,您需要知道的只是您想要工作的次押或PR - VS代码将处理虚拟文件系统并为您管理工作区。作为扩展开发人员,您' ll希望采用虚拟文件系统API,以确保您的扩展表现正常。

当你在传统的Git工作流程中工作时,你" git clone"一个repo,副本保存到您的计算机' s本地文件系统。但是在使用远程存储库时,代码并在当地的计算机上生活;它仍然只是在github上&#39。

您通过虚拟文件系统使用代码,这是一个从物理上存在于磁盘上存在的文件的抽象。虚拟文件系统可以从GitHub等代码主机,从云存储,或从数据库提供内容,并无缝地将其作为文件提供给VS代码中的用户。

当您在虚拟文件系统上打开工作空间时,它将' s称为虚拟工作空间。在进行虚拟工作空间时,您仍然可以访问VS代码功能,包括扩展。

当扩展名没有代码但是纯色主题,键绑定,片段或语法扩展,那么它可以在虚拟工作空间中运行,并且不需要采用。

运行实际代码的扩展,这意味着它定义了主要入口点,需要检查并可能采用。

虚拟文件系统的API支持是通过FileSystemProvider接口。文件系统提供程序用于新的URI方案(例如,vscode-vfs),并且该文件系统上的资源将由URI表示使用该架构(vscode-vfs://github/microsoft/vscode/package.json来表示)。

扩展名和#39; s package.json中有一个功能属性,VirtualWorkspaces子属性用于发出扩展是否与虚拟工作空间一起使用。

您可以了解有关虚拟文件系统,工作空间的更多信息以及如何在虚拟工作区扩展作者指南中实现它们的扩展。

我们非常兴奋地试用远程存储库,可以等待您的反馈。

请安装远程存储库扩展名。 您可以提交任何问题或功能请求或推文我们的想法@code。 您还可以查看我们的新YouTube视频有关如何使用远程存储库扩展名。 如果您'重新扩展作者,请查看“扩展作者的虚拟工作空间支持”指南,并在跟踪问题中分享任何问题或反馈。 您还可以加入扩展作者社区Slack组。 Brigit Murtaugh,VS Code Program Manager @brigitmurtaugh Eric Amodio,VS Code Principal软件工程师@eamodio