ist jetzt verfügbar! Lesen Sie über die neuen Funktionen und Fehlerbehebungen vom November.

Remote Repositories

10. Juni 2021 von Brigit Murtaugh, @BrigitMurtaugh, Eric Amodio, @eamodio

Hinweis: Die Erweiterung Remote Repositories wurde in GitHub Repositories umbenannt, seit dieser Blogbeitrag veröffentlicht wurde. Sie können auch die neueste Dokumentation lesen, die die aktuellsten Informationen zur Erweiterung enthält.

Wir freuen uns, Ihnen die neue Remote Repositories-Erweiterung für Visual Studio Code vorzustellen! Dies ist eine neue Funktion, die wir in Zusammenarbeit mit unseren Freunden bei GitHub entwickelt haben, um schnell und sicher mit Quellcode-Repositorys innerhalb von VS Code zu arbeiten.

Remote Repositories extension

Ein schnellerer Weg, Quellcode-Repositorys zu öffnen

Seit Beginn an bietet VS Code integrierte Unterstützung für Git und unterstützt über Erweiterungen viele andere Anbieter für Quellcodeverwaltung (SCM). Dies ermöglichte es Entwicklern, Repositorys direkt in VS Code zu klonen und damit zu arbeiten.

Ein großer Teil dessen, was Entwickler täglich tun, besteht jedoch darin, den Code anderer Leute zu lesen: Pull-Anfragen überprüfen, Open-Source-Repositorys durchsuchen, mit neuen Technologien oder Projekten experimentieren, Upstream-Abhängigkeiten inspizieren, um Anwendungen zu debuggen, usw. Was all dies gemeinsam hat, ist, dass Sie im ersten Schritt normalerweise das Repository lokal klonen und dann den Code in Ihrem bevorzugten Code-Editor öffnen (von dem wir hoffen, dass es VS Code ist!). Das Klonen eines Repositorys dauert jedoch seine Zeit, kann dazu führen, dass Sie eine veraltete Version des Repos untersuchen, wenn Sie vergessen, zu pullen, und kann manchmal ein Sicherheitsrisiko darstellen, wenn Sie mit dem Code nicht vertraut sind.

Die neue Remote Repositories-Erweiterung, veröffentlicht von GitHub, macht das Öffnen von Quellcode-Repositorys in VS Code sofort und sicher. Damit können Sie jedes Remote-GitHub-Repository (und bald auch Azure Repos) direkt aus VS Code heraus durchsuchen, durchsuchen, bearbeiten und committen, ganz ohne Klonen!

Sie können an so vielen Repos arbeiten, wie Sie möchten, ohne Quellcode auf Ihrem Rechner speichern zu müssen. Remote Repositories spart Ihnen Zeit und lokalen Festplattenspeicher und ermöglicht es Ihnen, für alle Ihre Quellcodeverwaltungsaufgaben vollständig in VS Code zu bleiben.

In diesem Blogbeitrag werden wir untersuchen, wie einfach es ist, mit Remote Repositories zu beginnen, was Sie nach dem Öffnen Ihres ersten Remote-Repos tun können, welche technischen Details diese virtuelle Umgebung unterstützen und wie Sie uns noch heute Feedback geben können.

Öffnen Sie Ihr erstes Remote-Repo in VS Code

Lassen Sie uns ein Remote-Repo in VS Code öffnen. Stellen Sie zunächst sicher, dass Sie die Remote Repositories-Erweiterung installiert haben.

Derzeit unterstützt Remote Repositories GitHub-Repos, die Unterstützung für Azure Repos wird bald verfügbar sein. In diesem Blogbeitrag beginnen wir mit dem Öffnen des VS Code-Repositorys (microsoft/vscode).

Nach der Installation der Remote Repositories-Erweiterung erhalten wir sofortigen Zugriff auf den Befehl Open Remote Repository, indem wir auf den Remote-Indikator unten links in VS Code klicken (zusammen mit Befehlen von anderen Remote Development-Erweiterungen, die Sie installiert haben).

Remote indicator in VS Code

Wenn Sie sich noch nie zuvor bei GitHub aus VS Code angemeldet haben, werden Sie aufgefordert, Ihr GitHub-Konto zu authentifizieren. Sobald Sie angemeldet sind, suchen Sie nach einem Repo oder einer PR, wählen Sie das gewünschte aus, und Sie sind bereit.

Im kurzen Video unten suchen und wählen wir das VS Code-Repository aus, VS Code lädt neu und der Inhalt des Repositorys wird geladen, als ob wir es lokal geklont hätten.

Gif of using Open Remote Repository command, search for "microsoft/vscode," repo loads, open readme

Sie können das Repository erkunden und dazu beitragen, ohne VS Code jemals verlassen zu müssen. Sie haben das Gefühl, an lokalem Code zu arbeiten, die vertraute VS Code-Oberfläche zu nutzen und Funktionen wie den VS Code Explorer, Suche, Zeitachsenansicht, Schnellauswahl und natürlich Quellcodeverwaltung verwenden zu können.

Sie sind jetzt mit dem verbunden, was als virtueller Arbeitsbereich bekannt ist (weitere Informationen zu virtuellen Arbeitsbereichen weiter unten). Der Remote-Indikator zeigt "GitHub" an. Wenn Sie mit der Maus über den Remote-Indikator fahren, werden Sie darüber informiert, dass einige Funktionen während der Arbeit in einem virtuellen Arbeitsbereich nicht verfügbar sind.

Hover over remote indicator for limited virtual workspace message

Ein virtueller Arbeitsbereich ist eine spezielle Konfiguration, und einige Funktionen wie Erweiterungen sind deaktiviert oder haben eine eingeschränkte Funktionalität. Sie können leicht herausfinden, welche Erweiterungen deaktiviert sind, indem Sie auf den Link Einige Funktionen klicken, der angezeigt wird, wenn Sie mit der Maus über den Remote-Indikator fahren.

Wenn Sie auf den Link klicken, wird angezeigt, welche Erweiterungen deaktiviert sind und welche eine eingeschränkte Funktionalität haben. Die eingeschränkte Funktionalität ist sichtbar, wenn Sie mit der Maus über die Erweiterung fahren.

VS Code Extensions view with limited and disabled extensions

Wenn Sie eine Erweiterung in einem virtuellen Arbeitsbereich manuell aktivieren möchten, können Sie die Einstellung extensions.supportVirtualWorkspaces in Ihrer settings.json-Datei verwenden.

    "extensions.supportVirtualWorkspaces": { "<extensionID>": true }

Beachten Sie, dass eine Erweiterung möglicherweise nicht dafür konzipiert ist, einen virtuellen Arbeitsbereich ohne Zugriff auf das lokale Dateisystem zu unterstützen, und daher möglicherweise nicht wie erwartet funktioniert.

Sie haben ein Repository geöffnet, wie geht es weiter?

Mit Ihrem geöffneten Repository macht Remote Repositories es einfach, zu Ihrem Projekt beizutragen.

Vereinfachter Git-Workflow, der Ihr Projekt auf dem neuesten Stand hält

Remote Repositories hilft Ihnen, jedes Mal auf der neuesten Version Ihrer Repositorys zu sein, ohne komplexe Git-Befehle.

Jedes Mal, wenn Sie ein neues Repository öffnen, öffnen Sie die neueste Version. Und wann immer Remote Repositories erkennt, dass neue Änderungen von GitHub vorhanden sind, wird die Anzahl der abzurufenden Commits in der Statusleiste angezeigt.

VS Code Status bar showing "GitHub" in remote indicator and 1 pending change

und hebt die geänderten Dateien im Explorer hervor.

VS Code Explorer listing files and README has 1 change

Wenn Sie Änderungen committen, werden diese automatisch auf GitHub angezeigt – Sie müssen Ihre Änderungen nicht pushen oder neue Branches veröffentlichen, die Sie erstellen.

Pull-Anfragen erstellen oder auschecken

Remote Repositories funktioniert gut mit der GitHub Pull Requests and Issues-Erweiterung, die es Ihnen ermöglicht, Pull-Anfragen und Issues von GitHub direkt in VS Code zu überprüfen und zu verwalten. Verwenden Sie die beiden Erweiterungen parallel, um PRs schnell auszuchecken und an Issues zu arbeiten, ohne jemals Code lokal klonen oder VS Code verlassen zu müssen.

Sie können eine Änderung an Ihrem Code vornehmen, einen neuen Branch und eine Pull-Anfrage (PR) basierend auf dieser Änderung erstellen und dann die PR auschecken, alles mit wenigen Klicks.

Gif using GitHub Pull Request extension to create branch and PR, and check out that PR

Sie können mehr über die GitHub Pull Requests and Issues-Erweiterung in unserem Artikel Arbeiten mit GitHub erfahren.

Änderungen isoliert in Branches halten

Möglicherweise müssen Sie zwischen Branches wechseln, während Sie Ihre Arbeit erledigen. In einer typischen Umgebung kann dies schwierig werden, wenn Sie entscheiden müssen, welche Änderungen gestashed oder committet werden sollen.

Remote Repositories ermöglicht es Ihnen, einfach und gleichzeitig an verschiedenen Branches zu arbeiten. Wenn Sie die Arbeit an einem Branch unterbrechen und zu einem neuen wechseln, werden Sie nicht aufgefordert, Änderungen zu stashen – sie bleiben automatisch im vorherigen Branch. Wenn Sie zu einem früheren Branch zurückkehren, sind Ihre Änderungen immer noch da und Sie können genau dort weitermachen, wo Sie aufgehört haben.

Lassen Sie uns untersuchen, wie Änderungen an einen Branch gepusht werden.

Wählen Sie in der Statusleiste Ihren aktuellen Branch aus, um die Liste der Branches zu öffnen, z. B. "main".

VS Code Status bar on Main branch

Wählen Sie + Neuen Branch erstellen... und geben Sie einen Namen für Ihren Branch ein.

VS Code Command Palette with options to create new branch

Sie können dann zu diesem neuen Branch wechseln.

Remote Repositories prompt to switch to new branch

Der neue Branch enthält keine Änderungen aus Ihrem vorherigen Branch.

Einschränkungen

Es gibt bestimmte Einschränkungen bei der Arbeit mit Remote Repositories

  • Debugging, Terminals und Tasks – Derzeit nicht unterstützt. Terminals werden auf Ihrem lokalen Dateisystem geöffnet und haben keinen Zugriff auf das virtuelle Dateisystem des Remote-Repositorys.
  • Eingeschränkte Sprachintelligenz – Funktionen wie IntelliSense und Gehe zu Definition können beeinträchtigt sein, da viele Sprachen die virtualisierte Umgebung von Remote Repositories noch nicht verstehen.
  • Suche – Die GitHub-Suche selbst hat Einschränkungen, wie z. B. die fehlende Indizierung von Branches. Remote Repositories kann diese Einschränkung umgehen und eine Volltextsuche durchführen, indem die Indizierung aktiviert wird. Die Indizierung zieht einen flachen Klon des Repositorys von GitHub und führt lokal eine vollständige Suche durch, was eine größere Leistung bietet als die native Standard-Branch-Suche von GitHub. Sie können die Indizierung in Remote Repositories über die Suchansicht aktivieren.
  • Einschränkungen bei Erweiterungen – Nicht alle Erweiterungen können in einem virtuellen Arbeitsbereich ausgeführt werden, aber im Laufe der Zeit werden mehr Erweiterungen unterstützt. Erweiterungen, die stark auf den Zugriff auf lokale Dateien angewiesen sind, können diese Konfiguration nicht unterstützen. Weitere Details finden Sie im Abschnitt Virtuelle Arbeitsbereiche weiter unten.

Wir stehen noch am Anfang dieser Reise, daher erwarten Sie, dass sich der Funktionsumfang mit der Weiterentwicklung vergrößert und die Einschränkungen schrumpfen.

Arbeiten Sie in einer leistungsfähigeren Umgebung weiter

Bei Verwendung von Remote Repositories arbeitet VS Code in einer Umgebung, in der nicht alle Funktionen verfügbar sind, da kein physisches Dateisystem vorhanden ist. Dies ist großartig, um schnell mit dem Durchsuchen eines Repositorys zu beginnen, aber was ist, wenn Sie bereit sind, "erweiterte" Arbeiten durchzuführen, wie z. B.:

  • Sie möchten aktiv am Repository arbeiten und die volle Leistung von VS Code nutzen.
  • Sie müssen die Änderungen des Repositorys aktiv verfolgen, indem Sie regelmäßig vom Remote-System pullen.

Um zu fortgeschritteneren Workflows überzugehen, bietet Remote Repositories eine Möglichkeit, Ihre Umgebung zu "aktualisieren" und Ihre Arbeit dort fortzusetzen, wo Sie gerade sind.

Klicken Sie auf den Remote-Indikator unten links und wählen Sie Weiterarbeiten an....

VS Code Command Palette with "Continue Working on..." command

Sie erhalten drei Optionen:

  • Repository lokal klonen: Klonen Sie das aktuelle Repository auf Ihren lokalen Rechner. Ein lokaler Dateiexplorer wird angezeigt, mit dem Sie einen Speicherort auf der Festplatte auswählen können, um das Remote-Repository zu klonen.
  • Repository in Container-Volume klonen: Klonen Sie das aktuelle Repository in ein Docker- Container-Volume mit der Dev Containers-Erweiterung (Sie benötigen die Dev Containers-Erweiterung und Docker installiert). VS Code wird neu geladen und stellt eine Verbindung über Dev Containers her, und der Remote-Indikator zeigt nun Dev Container: {Image-Name} an.
  • In Codespaces öffnen: Setzen Sie Ihre Arbeit in einem GitHub Codespace fort. Wenn Sie diese Option wählen, wird ein Browser geöffnet und Sie werden zu Ihrer Liste der Codespaces für dieses Repository weitergeleitet.

VS Code Command Palette with options to continue locally, in a volume, or in Codespaces

Nachdem wir nun untersucht haben, wie Remote Repositories in VS Code verwendet werden, möchten wir einige der technischen Details erläutern, die die Erfahrung ermöglichen, und wie Sie sicherstellen können, dass Ihre Erweiterung in einer Remote Repositories-Sitzung funktioniert.

Virtuelle Dateisysteme und Arbeitsbereiche

Die Kernkonzepte, die diese Remote-Arbeit ermöglichen, sind virtuelle Dateisysteme und virtuelle Arbeitsbereiche.

Als Endbenutzer müssen Sie nur wissen, an welchem Repo oder PR Sie arbeiten möchten – VS Code kümmert sich um das virtuelle Dateisystem und verwaltet Ihren Arbeitsbereich für Sie. Als Erweiterungsentwickler möchten Sie die virtuelle Dateisystem-API nutzen, um sicherzustellen, dass Ihre Erweiterung wie erwartet funktioniert.

So funktionieren virtuelle Dateisysteme

Wenn Sie in einem traditionellen Git-Workflow arbeiten, klonen Sie ein Repository mit "git clone" und eine Kopie wird auf dem lokalen Dateisystem Ihres Computers gespeichert. Aber wenn Sie mit Remote Repositories arbeiten, befindet sich der Code nicht auf Ihrem lokalen Computer; er ist immer noch nur auf GitHub.

Sie arbeiten mit dem Code über ein virtuelles Dateisystem, das eine Abstraktion von Dateien darstellt, die physisch auf der Festplatte existieren. Virtuelle Dateisysteme können Inhalte von Code-Hosts wie GitHub, aus Cloud-Speichern oder aus Datenbanken bereitstellen und diese nahtlos als Dateien für den Benutzer in VS Code zur Verfügung stellen.

Wenn Sie einen Arbeitsbereich auf einem virtuellen Dateisystem öffnen, ist dies als virtueller Arbeitsbereich bekannt. Während der Arbeit in einem virtuellen Arbeitsbereich haben Sie weiterhin Zugriff auf VS Code-Funktionen, einschließlich Erweiterungen.

Sicherstellen, dass Ihre Erweiterung in einem virtuellen Arbeitsbereich funktioniert

Damit Erweiterungen ordnungsgemäß funktionieren, müssen sie ein virtuelles Dateisystem unterstützen.

Wenn eine Erweiterung keinen Code enthält, sondern eine reine Farbthema-, Tastenbelegungs-, Snippet- oder Grammatik-Erweiterung ist, kann sie in einem virtuellen Arbeitsbereich ausgeführt werden und es ist keine Anpassung erforderlich.

Erweiterungen, die tatsächlich Code ausführen, d. h. einen Haupteinstiegspunkt definieren, erfordern eine Überprüfung und möglicherweise eine Anpassung.

Die API-Unterstützung für virtuelle Dateisysteme erfolgt über die FileSystemProvider-Schnittstelle. Ein Dateisystem-Provider wird für ein neues URI-Schema registriert (z. B. vscode-vfs), und Ressourcen auf diesem Dateisystem werden durch URIs mit diesem Schema dargestellt (vscode-vfs://github/microsoft/vscode/package.json).

In der package.json-Datei der Erweiterung gibt es eine Eigenschaft capabilities, und die Untereigenschaft virtualWorkspaces wird verwendet, um anzuzeigen, ob eine Erweiterung mit virtuellen Arbeitsbereichen funktioniert oder nicht.

Sie können mehr über virtuelle Dateisysteme, Arbeitsbereiche und deren Implementierung für Erweiterungen im Leitfaden für virtuelle Arbeitsbereiche für Erweiterungsautoren erfahren.

Feedback & Weiterführende Lektüre

Wir freuen uns sehr darauf, dass Sie Remote Repositories ausprobieren und können Ihr Feedback kaum erwarten.

Bitte installieren Sie die Remote Repositories-Erweiterung. Sie können Probleme oder Funktionswünsche einreichen oder uns Ihre Gedanken per Tweet unter @code mitteilen.

Sie können auch unser neues YouTube-Video darüber ansehen, wie Sie die Remote Repositories-Erweiterung verwenden.

Wenn Sie ein Erweiterungsautor sind, lesen Sie den Leitfaden Virtual Workspace Support für Erweiterungsautoren und teilen Sie Fragen oder Feedback in unserem Tracking-Issue. Sie können auch der Extension Authors Community Slack-Gruppe beitreten.

Viel Spaß beim Programmieren!

Brigit Murtaugh, VS Code Program Manager @BrigitMurtaugh
Eric Amodio, VS Code Principal Software Engineer @eamodio

© . This site is unofficial and not affiliated with Microsoft.