GitHub Codespaces ist eine sofort einsetzbare, cloudbasierte Entwicklungsumgebung, die einen Container nutzt, um dir gängige Sprachen, Tools und Dienstprogramme für die Entwicklung zur Verfügung zu stellen. GitHub Codespaces ist außerdem konfigurierbar, sodass du eine angepasste Entwicklungsumgebung für dein Projekt erstellen kannst. Durch die Konfiguration einer benutzerdefinierten Entwicklungsumgebung für dein Projekt kannst du über eine wiederholbare Codespacekonfiguration für alle Benutzer deines Projekts verfügen.
Erstellen Ihres Codespace
Es gibt eine Reihe von Einstiegspunkten zum Erstellen eines Codespace.
- Beginnen Sie ein neues Projekt mit einer Vorlage von GitHub oder einem beliebigen Vorlagen-Repository auf GitHub.
- Von einem Branch in deinem Repository aus für die Arbeit an neuen Features
- Ein offener Pull Request zum Erkunden laufender Arbeiten
- Ausgehend von einem Commit in der Historie eines Repositorys, um einen Fehler zu einem bestimmten Zeitpunkt zu untersuchen.
Sie können einen Codespace auf GitHub, in Visual Studio Code oder mit der GitHub CLI erstellen.
Dein Codespace kann kurzlebig sein, wenn du etwas testen musst, oder du kannst zum selben Codespace zurückkehren, um an zeitintensiven Featureaufgaben zu arbeiten.
Weitere Informationen findest du unter AUTOTITLE, AUTOTITLE und AUTOTITLE.
Hinweis
Du kannst pro Repository oder sogar pro Branch mehr als einen Codespace erstellen. Es gibt jedoch Grenzwerte für die Anzahl der Codespaces, die du erstellen kannst, sowie für die Anzahl der Codespaces, die du gleichzeitig ausführen kannst. Wenn du die maximale Anzahl von Codespaces erreichst und versuchst, andere zu erstellen, wird eine Meldung angezeigt, dass du einen vorhandenen Codespace entfernen musst, bevor du einen neuen erstellen kannst.
Der Codespace-Erstellungsprozess
Wenn du einen Codespace erstellst, werden verschiedene Schritte im Hintergrund ausgeführt, bevor der Codespace zur Verfügung steht.
Schritt 1: VM und Speicher werden deinem Codespace zugewiesen
Wenn Sie einen Codespace erstellen, wird ein virtueller Computer (VM) mithilfe der stabilen Version oder öffentliche Vorschau des VM-Hostimages erstellt. Weitere Informationen finden Sie unter AUTOTITLE. Das Hostimage definiert die Version von Linux, die für die VM verwendet wird. Die virtuelle Maschine ist sowohl speziell als auch privat für Sie. Wenn du über eine dedizierte VM verfügst, wird sichergestellt, dass dir die gesamten Rechenressourcen dieser Maschine zur Verfügung stehen. Bei Bedarf hast du auch vollständigen Root-Zugriff auf deinen Container.
Ein flacher Klon Ihres Repositorys wird anschließend erstellt oder ein flacher Klon des Vorlagenrepositorys, wenn Sie einen Codespace mithilfe einer Vorlage erstellen. Dies wird in das -Verzeichnis der VM geklont und später in den Entwicklungscontainer eingebunden. Weitere Informationen findest du weiter unten unter Informationen zur Verzeichnisstruktur von Codespaces.
Schritt 2: Entwicklungscontainer wird erstellt
GitHub Codespaces verwendet einen Docker-Container als Entwicklungsumgebung. Dieser Container wird basierend auf Konfigurationen erstellt, die Sie in einer Konfigurationsdatei und optional in einem Dockerfile definieren können. Wenn du einen Codespace mithilfe der leeren Vorlage von GitHub oder aus einem Repository ohne Datei erstellst, verwendet GitHub Codespaces ein Standardimage, das viele Sprachen und Runtimes beinhaltet. Weitere Informationen finden Sie unter AUTOTITLE. Ausführliche Informationen zum Inhalt des Standardimage für Entwicklungscontainer findest du im Repository .
Hinweis
Wenn du Git-Hooks in deinem Codespace verwenden und alles im Git-Vorlagenverzeichnis auf deinen Codespace anwenden möchtest, musst du in Schritt 4 nach der Erstellung des Containers Hooks einrichten.
Da dein Repository auf der Host-VM geklont wird, bevor der Container erstellt wird, gelten alle Elemente im Git-Vorlagenverzeichnis nicht in deinem Codespace, es sei denn, du richtest in Schritt 4 Hooks in deiner Konfigurationsdatei ein. Weitere Informationen findest du unter Schritt 4: Einrichtung nach der Erstellung.
Schritt 3: Herstellen einer Verbindung mit dem Codespace
Wenn dein Container erstellt wurde und alle anderen Initialisierungen ausgeführt wurden, wirst du mit deinem Codespace verbunden. Sie können sich damit verbinden, indem Sie Folgendes verwenden:
- Ihr Webbrowser
- Visual Studio Code
- GitHub CLI
Schritt 4: Einrichtung nach der Erstellung
Sobald du mit deinem Codespace verbunden bist, setzt das automatisierte Setup möglicherweise die Erstellung basierend auf der Konfiguration fort, die in der Datei angegeben ist. Möglicherweise wird die Ausführung von und angezeigt.
Wenn du Git-Hooks in deinem Codespace verwenden möchtest, richte Hooks mithilfe der -Lebenszyklusskripts ein (z. B. ). Informationen zu Lebenszyklusskripts findest du in der Spezifikation von Entwicklungscontainern auf der Website zu Entwicklungscontainern.
Wenn du über ein öffentliches Dotfiles-Repository für GitHub Codespaces verfügst, kannst du es für die Verwendung mit neuen Codespaces aktivieren. Wenn es aktiviert ist, werden deine Dotfiles in den Container geklont, und das Installationsskript wird aufgerufen. Weitere Informationen finden Sie unter AUTOTITLE.
Wenn du den Codespace aus einem Repository erstellt hast, wird schließlich der gesamte Verlauf des Repositorys mit einem vollständigen Klon kopiert. Wenn du den Codespace mithilfe einer Vorlage erstellt hast, bleibt nicht der gesamte Verlauf des Vorlagenrepositorys erhalten. Stattdessen beginnst du mit einem anfänglichen Commit für die Inhalte des Vorlagenrepositorys (es sei denn, du verwendest die leere Vorlage).
Während der Einrichtung nach der Erstellung kannst du weiterhin das integrierte Terminal verwenden und deine Dateien bearbeiten, aber achte darauf, Racebedingungen zwischen deiner Arbeit und den ausgeführten Befehlen zu vermeiden.
Codespaces-Lebenszyklus
Speichern von Dateien im Codespace
Speichere Änderungen an Dateien auf normale Weise – je nachdem, welchen Editor du verwendest.
Wenn du an Codespaces in Visual Studio Code arbeitest, kannst du automatisches Speichern aktivieren, um sicherzustellen, dass deine Änderungen immer gespeichert werden.
Schließen oder Stoppen Ihres Codespace
Dein Codespace wird weiter ausgeführt, während du ihn verwendest. Nach einem gewissen Inaktivitätszeitraum tritt jedoch ein Timeout auf. Dateiänderungen im Editor und Terminalausgaben werden als Aktivität gewertet, sodass Ihr Codespace nicht in den Timeout-Modus wechselt, wenn die Terminalausgabe weiterhin erfolgt. Der Timeoutzeitraum bei Inaktivität beträgt standardmäßig 30 Minuten. Du kannst deine eigene Timeouteinstellung für von dir erstellte Codespaces definieren. Diese kann jedoch durch eine Timeoutrichtlinie der Organisation außer Kraft gesetzt werden. Weitere Informationen finden Sie unter AUTOTITLE.
Wenn für einen Codespace ein Timeout auftritt, wird er beendet. Du kannst ihn allerdings über den Browsertab (bei Verwendung des Codespace im Browser), innerhalb von VS Code oder über die Liste der Codespaces unter neu starten.
Zum Beenden deines Codespace stehen folgende Möglichkeiten zur Verfügung:
- Im Browser: Klicke in deiner Liste von Codespaces auf die drei Punkte („…“) rechts neben dem Codespace, den du beenden möchtest, und klicke anschließend auf „Beenden“.
- In VS Code: öffnen Sie die Visual Studio Code Command Palette , z. B. durch Drücken von Ctrl+Shift+P (Windows>/Linux) oder Shift+Command+P (Mac) – geben Sie
Codespaces: stopein, und drücken Sie dann Enter. Weitere Informationen finden Sie unter AUTOTITLE. - In einem Terminalfenster: Verwende den GitHub CLI-Befehl . Weitere Informationen finden Sie unter AUTOTITLE.
Wenn du den Codespace schließt, ohne den Beendigungsbefehl auszuführen (beispielsweise durch Schließen des Browsertabs), oder den Codespace ohne Interaktion verlässt, werden der Codespace und seine laufenden Prozesse für die Dauer des Timeoutzeitraums bei Inaktivität fortgesetzt.
Wenn du den Codespace schließt oder beendest, werden alle nicht übernommenen Änderungen beibehalten, bis du noch einmal eine Verbindung mit dem Codespace herstellst.
Ausführen deiner Anwendung
Portweiterleitung bietet Zugriff auf TCP-Ports, die innerhalb deines Codespace ausgeführt werden. Wenn du beispielsweise eine Webanwendung auf Port 4000 in deinem Codespace ausführst, kannst du diesen Port automatisch weiterleiten, um die Anwendung über deinen Browser zugänglich zu machen.
Die Portweiterleitung bestimmt, auf welche Ports du über den Remotecomputer zugreifen kannst. Auch wenn du keinen Port weiterleitest, ist dieser Port weiterhin für andere Prozesse zugänglich, die innerhalb des Codespace selbst ausgeführt werden.

Wenn eine Anwendung, die innerhalb von GitHub Codespaces ausgeführt wird, einen Port an die Konsole ausgibt, erkennt GitHub Codespaces das Localhost-URL-Muster und leitet den Port automatisch weiter. Du kannst auf die URL in der Konsole oder auf den Link in der "Toast"-Benachrichtigung klicken, die unten rechts in VS Code erscheint, um den Port in einem Browser zu öffnen. Standardmäßig leitet GitHub Codespaces den Port mit HTTP weiter. Weitere Informationen zur Portweiterleitung findest du unter AUTOTITLE.
Während Ports automatisch weitergeleitet werden können, sind sie für das Internet nicht öffentlich zugänglich. Standardmäßig sind alle Ports privat, aber du kannst einen Port manuell für deine Organisation oder die Öffentlichkeit verfügbar machen und dann den Zugriff über eine URL freigeben. Weitere Informationen finden Sie unter AUTOTITLE.
Die Ausführung deiner Anwendung, wenn du zum ersten Mal in deinen Codespace gelangst, kann zu einer schnellen inneren Entwicklungsschleife führen. Während der Bearbeitung werden deine Änderungen automatisch gespeichert und sind auf deinem weitergeleiteten Port verfügbar. Um Änderungen anzuzeigen, gehe zurück zur aktiven Anwendungsregisterkarte in deinem Browser und aktualisiere sie.
Committen und Pushen Ihrer Änderungen
Git ist standardmäßig in deinem Codespace installiert, sodass du dich auf deinen vorhandenen Git-Workflow verlassen kannst. Du kannst in deinem Codespace entweder über das Terminal oder mithilfe der Quellcodeverwaltungsfeatures von VS Code mit Git arbeiten.
Bei Verwendung eines bereits vorhandenen Repositorys kannst du einen Codespace auf der Grundlage eines beliebigen Branchs, Commits oder Pull Requests in dem Repository erstellen. Alternativ kannst du innerhalb deines aktiven Codespace zu einem neuen oder bereits vorhandenen Branch wechseln. Da GitHub Codespaces als kurzlebig konzipiert ist, kannst du es als isolierte Umgebung verwenden, um zu experimentieren, die Pull Requests von Teamkolleg*innen zu überprüfen oder Mergekonflikte zu beheben.
Wenn du nur Lesezugriff auf ein Repository hast, kannst du einen Codespace für das Repository erstellen, solange du es forken kannst. Wenn du einen Commit im Codespace durchführst oder einen neuen Branch pushst, erstellt GitHub Codespaces entweder automatisch einen Fork des Repositorys für dich oder verknüpft den Codespace mit einem vorhandenen Fork, wenn du bereits einen für das Upstreamrepository hast.
Wenn du in einem Codespace arbeitest, der mithilfe einer Vorlage erstellt wurde, ist Git standardmäßig installiert. Du musst deinen Codespace jedoch in einem Remoterepository veröffentlichen, um deine Arbeit zu speichern und mit anderen teilen zu können. Wenn du die leere Vorlage von GitHub als Ausgangspunkt verwendest, musst du zunächst deinen Arbeitsbereich als Git-Repository initialisieren (beispielsweise durch Eingeben von ), um die Quellcodeverwaltung innerhalb des Codespace verwenden zu können.
Weitere Informationen finden Sie unter AUTOTITLE.
Hinweis
Commits aus deinem Codespace werden dem Namen und der öffentlichen E-Mail zugewiesen, die dort konfiguriert sind. Ein auf das Repository beschränktes Token, das in der Umgebung als GITHUB_TOKEN enthalten ist; Ihre GitHub-Anmeldeinformationen werden zur Authentifizierung verwendet.
Personalisieren deines Codespace mit Erweiterungen
Du kannst in einem Codespace Erweiterungen hinzufügen, um deine Benutzeroberfläche in VS Code zu personalisieren.
VS Code Erweiterungen
Wenn du deine Codespaces in der VS Code-Desktopanwendung oder im Webclient bearbeitest, kannst du jede benötigte Erweiterung aus dem Visual Studio Code Marketplace hinzufügen. Informationen zur Ausführung von Erweiterungen in GitHub Codespaces finden Sie in der VS Code Dokumentation unter dem Abschnitt Unterstützung von Remote-Entwicklung und GitHub Codespaces.
Wenn du bereits VS Code nutzt, kannst du die Einstellungssynchronisierung verwenden, um Erweiterungen, Einstellungen, Designs und Tastenkombinationen zwischen deiner lokalen Instanz und von dir erstellten Codespaces automatisch zu synchronisieren.
Informationen zur Verzeichnisstruktur von Codespaces
Wenn du einen Codespace erstellst, wird dein Repository in das /workspaces-Verzeichnis deines Codespace geklont. Es handelt sich um ein persistentes Verzeichnis, das in den Container eingebunden wird. Alle Änderungen, die du in diesem Verzeichnis vornimmst, einschließlich dem Bearbeiten, Hinzufügen oder Löschen von Dateien, werden beibehalten, wenn du den Codespace beendest und startest oder wenn du den Container im Codespace neu erstellst.
Außerhalb des /workspaces-Verzeichnisses hat Ihr Codespace eine Linux-Verzeichnisstruktur, die abhängig vom Dev-Containerimage variiert, das zum Erstellen Ihres Codespace verwendet wird. Sie können Dateien hinzufügen oder Änderungen an Dateien außerhalb des Verzeichnisses /workspaces vornehmen. Sie können beispielsweise neue Programme installieren oder die Shell-Konfiguration in einer Datei einrichten wie z. B. ~/.bashrc. Als Nicht-Root-Benutzer*in hast du möglicherweise nicht automatisch Schreibzugriff auf bestimmte Verzeichnisse, aber die meisten Images lassen den Root-Zugriff auf diese Verzeichnisse mit dem sudo-Befehl zu.
Außerhalb von /workspaces sind die Verzeichnisse in einem Codespace mit Ausnahme des /tmp-Verzeichnisses an den Lebenszyklus des Containers gebunden. Das bedeutet, dass alle Änderungen, die Sie vornehmen, beibehalten werden, wenn Sie den Codespace beenden und starten, aber nicht, wenn Sie den Container neu erstellen. Weitere Informationen zum Verzeichnis findest du unter AUTOTITLE.
Durch das Löschen der Verzeichnisse außerhalb des Codespaces stellst du sicher, dass der neu erstellte Container denselben Zustand wie ein neu erstellter Codespace aufweist. Wenn du einen Container neu erstellst, um Konfigurationsänderungen auf den Codespace anzuwenden, in dem du arbeitest, kannst du sicher sein, dass alle Konfigurationsänderungen, die du vorgenommen hast, für Benutzer*innen, die neue Codespaces mit derselben Konfiguration erstellen, gleich funktionieren. Weitere Informationen finden Sie unter AUTOTITLE.
Wenn du Änderungen an deinem Codespace vornehmen möchtest, die bei Neuerstellungen und in verschiedenen Codespaces robuster sind, hast du dazu mehrere Möglichkeiten.
- Zum Installieren von Programmen und Tools in allen aus einem Repository erstellten Codespaces kannst du in der Konfiguration deines Entwicklungscontainers Lebenszyklusbefehle verwenden, um entweder benutzerdefinierte Installationsbefehle auszuführen oder aus vordefinierten Installationsbefehlen zu wählen, die als „Features“ bezeichnet werden. Weitere Informationen findest du in der Entwicklungscontainerspezifikation auf der Website für Entwicklungscontainer und unter AUTOTITLE.
- Du kannst GitHub Codespaces mit einem Dotfiles-Repository verknüpfen, um Tools zu installieren oder dein Setup in jedem von dir erstellten Codespace anzupassen, z. B. das Konfigurieren deines -Profils. Das Dotfiles-Repository wird auch in das persistente Verzeichnis geklont. Weitere Informationen finden Sie unter AUTOTITLE.
- Wenn du bestimmte Dateien bei einer Neuerstellung beibehalten möchtest, kannst du die Datei verwenden, um einen Symlink zwischen den Dateien und einem persistenten Verzeichnis in zu erstellen. Weitere Informationen finden Sie unter AUTOTITLE.
Weiterführende Lektüre
- AUTOTITEL
- AUTOTITEL
- AUTOTITEL
- AUTOTITEL