In diesem Artikel werden die Lebenszyklusphasen eines Codespaces von der Erstellung bis zur Löschung erläutert. Wenn du den Artikel Schnellstartanleitung für GitHub Codespaces gelesen hast und nun GitHub Codespaces für deine eigene Arbeit verwenden möchtest, lies die Artikel unter In einem Codespace entwickeln.
Informationen zum Lebenszyklus eines Codespaces
Der Lebenszyklus eines Codespaces beginnt beim Erstellen des Codespaces und endet, wenn du den Codespace löschst. Du kannst eine Verbindung mit einem aktiven Codespace trennen und erneut herstellen, ohne dass die ausgeführten Prozesse dadurch beeinträchtigt werden. Du kannst einen Codespace beenden und neu starten, ohne Änderungen zu verlieren, die du an deinem Projekt vorgenommen hast.
Einen Codespace erstellen
Wenn du an einem Projekt arbeiten möchtest, kannst du einen neuen Codespace erstellen oder einen vorhandenen Codespace öffnen. Wenn du in GitHub Codespaces entwickelst, kannst du einen neuen Codespace anhand eines Branches deines Repositorys erstellen oder einen Codespace mit langer Ausführungsdauer für ein Feature nutzen. Wenn du ein neues Projekt startest, kannst du einen Codespace über eine Vorlage erstellen und später in einem Repository in GitHub Enterprise Cloud veröffentlichen. Weitere Informationen findest du unter Erstellen eines Codespaces für ein Repository und Erstellen eines Codespaces aus einer Vorlage.
Es gibt Grenzwerte für die Anzahl von Codespaces, die du erstellen kannst, sowie für die Anzahl der Codespaces, die du gleichzeitig ausführen kannst. Diese Grenzwerte variieren je nach Anzahl von Faktoren. 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. Wenn du die maximale Anzahl aktiver Codespaces erreichst und versuchst, andere zu starten, wirst du aufgefordert, einen deiner aktiven Codespaces zu beenden.
Falls du jedes Mal, wenn du an einem Projekt arbeitest, einen neuen Codespace erstellst, solltest du deine Änderungen regelmäßig pushen, damit neue Commits auf GitHub verfügbar sind. Wenn du für dein Projekt einen Codespace mit langer Ausführungsdauer verwendest, solltest du Inhalte aus dem Standardbranch deines Repositorys pullen, sobald du mit der Arbeit in deinem Codespace beginnst. Auf diese Weise verfügt deine Umgebung über die aktuellen Commits. Dieser Workflow ist mit der Arbeit an einem Projekt auf deinem lokalen Computer vergleichbar.
Um die Erstellung von Codespaces zu beschleunigen, können Repositoryadministrator*innen GitHub Codespaces-Prebuilds für ein Repository aktivieren. Weitere Informationen findest du unter Weitere Informationen zu GitHub Codespaces-Prebuilds.
Speichern von Änderungen in einem Codespace
Wenn du über das Internet eine Verbindung mit einem Codespace herstellst, ist die Funktion für automatisches Speichern automatisch für den Web-Editor aktiviert und so konfiguriert, dass Änderungen nach einer bestimmten Verzögerung gespeichert werden. Wenn du über Visual Studio Code auf deinem Desktop eine Verbindung mit einem Codespace herstellst, musst du die Funktion für automatisches Speichern aktivieren. Weitere Informationen findest du unter Speichern/Automatisch Speichern in der Visual Studio Code-Dokumentation.
Deine Arbeit wird auf einem virtuellen Computer in der Cloud gespeichert. Du kannst einen Codespace schließen und beenden und später zur gespeicherten Arbeit zurückkehren. Wenn du über Änderungen verfügst, die noch nicht gespeichert wurden, fordert dein Editor dich zum Speichern auf, bevor du das Programm beendest. Wenn dein Codespace jedoch gelöscht wird, wird auch deine Arbeit gelöscht. Um deine Arbeit beizubehalten, musst du deine Änderungen committen und in dein Remoterepository pushen oder deine Arbeit in einem neuen Remoterepository veröffentlichen, wenn du deinen Codespace aus einer Vorlage erstellt hast. Weitere Informationen findest du unter Verwenden der Quellcodeverwaltung in deinem Codespace.
Timeouts für GitHub Codespaces
Wenn ein Codespace ohne Interaktion ausgeführt wird oder du deinen Codespace beendest, ohne ihn explizit anzuhalten, tritt nach einer bestimmten Dauer an Inaktivität ein Timeout auf, und der Codespace wird beendet. Standardmäßig wird ein Codespace nach einer Inaktivitätsperiode von 30 Minuten mit einem Timeout beendet. Du kannst diesen Zeitraum bei Codespaces, die du neu erstellst, jedoch anpassen. Weitere Informationen zum Festlegen des standardmäßigen Timeouts für deine Codespaces findest du unter Festlegen des Timeoutzeitraums für GitHub Codespaces. Weitere Informationen zum Anhalten eines Codespaces findest du unter Anhalten eines Codespaces.
Wenn ein Timeout für einen Codespace auftritt, werden deine Daten zum Zeitpunkt des letzten Speichervorgangs beibehalten. Weitere Informationen findest du unter Speichern von Änderungen in einem Codespace.
Neuerstellen eines Codespaces
Sie können Ihren Codespace neu erstellen, um vorgenommene Änderungen an deiner Entwicklungscontainerkonfiguration zu implementieren. Für die meisten Anwendungsfälle ist das Erstellen eines neuen Codespaces eine Alternative zum Neuerstellen eines Codespaces. Wenn Du deinen Codespace neu erstellst, verwendet GitHub Codespaces standardmäßig Images aus deinem Cache neu, um den Neuerstellungsprozess zu beschleunigen. Alternativ kannst du eine vollständige Neuerstellung durchführen, wodurch der Cache gelöscht und der Container mit neuen Images neu erstellt wird.
Hinweis: Wenn du den Container in einem Codespace neu erstellst, werden Änderungen, die du außerhalb des Verzeichnisses /workspaces
vorgenommen hast, gelöscht. Änderungen, die du innerhalb des Verzeichnisses /workspaces
vorgenommen hast, das den Klon des Repositorys oder der Vorlage enthält, aus dem du den Codespace erstellt hast, bleiben bei einer Neuerstellung erhalten. Weitere Informationen findest du unter Ausführliche Informationen zu GitHub Codespaces.
Weitere Informationen finden Sie unter Einführung in Entwicklungscontainer und unter Neuerstellen des Containers in einem Codespace.
Beenden eines Codespaces
Codespaces können jederzeit beendet werden. Wenn Sie einen Codespace beenden, werden alle ausgeführten Prozesse beendet. Alle gespeicherten Änderungen in deinem Codespace sind weiterhin verfügbar, wenn du den Codespace beim nächsten Mal startest. Der Terminalverlauf wird beibehalten, aber der sichtbare Inhalt des Terminalfensters wird nicht zwischen Codespacesitzungen beibehalten.
Wenn du einen Codespace nicht explizit beendest, wird er weiterhin ausgeführt, bis aufgrund von Inaktivität ein Timeout auftritt. Das Schließen eines Codespaces beendet den Codespace nicht. Wenn du beispielsweise einen Codespace auf dem VS Code-Webclient verwendest und die Browserregisterkarte schließt, wird der Codespace weiterhin auf dem Remotecomputer ausgeführt. Weitere Informationen zu Timeouts findest du unter Grundlegendes zum Codespacelebenszyklus.
Nur beim Ausführen von Codespaces fallen CPU-Gebühren an. Für einen beendeten Codespace fallen nur Speicherkosten an.
Es kann sinnvoll sein, einen Codespace zu beenden und neu zu starten, um Änderungen anzuwenden. Wenn du z. B. den für deinen Codespace verwendeten Computertyp änderst, musst du den Codespace beenden und neu starten, damit die Änderungen wirksam werden. Du kannst deinen Codespace auch beenden und ihn neu starten oder löschen, wenn ein Fehler oder ein unerwartetes Verhalten auftritt. Weitere Informationen findest du unter Beenden und Starten eines Codespaces.
Einen Codespace löschen
Du kannst einen Codespace für eine bestimmte Aufgabe erstellen und den Codespace sicher löschen, nachdem du deine Änderungen an einen Remotebranch gepusht hast.
Wenn du versuchst, einen Codespace mit nicht gepushten Git-Commits zu löschen, wirst du in deinem Editor benachrichtigt, dass Änderungen vorliegen, die nicht an einen Remotebranch gepusht wurden. In diesem Fall kannst du alle gewünschten Änderungen pushen und deinen Codespace anschließend löschen, oder du löschst deinen Codespace mitsamt allen ausgecheckten Änderungen. Du kannst deinen Code auch in einen neuen Branch exportieren, ohne einen neuen Codespace zu erstellen. Weitere Informationen findest du unter Exportieren von Änderungen in einen Branch.
Codespaces, die angehalten wurden und für einen bestimmten Zeitraum inaktiv bleiben, werden automatisch gelöscht. Standardmäßig werden inaktive Codespaces nach 30 Tagen gelöscht, du kannst allerdings den Aufbewahrungszeitraum für Codespaces anpassen. Weitere Informationen findest du unter Konfigurieren des automatischen Löschens deiner Codespaces.
Wenn du einen Codespace erstellst, fallen weiterhin Speichergebühren an, bis er gelöscht wird, unabhängig davon, ob er aktiv oder beendet ist. Weitere Informationen findest du unter Informationen zur Abrechnung für GitHub Codespaces. Das Löschen eines Codespaces verringert nicht den aktuellen abrechenbaren Betrag für GitHub Codespaces, der während jedes monatlichen Abrechnungszyklus akkumuliert wird. Weitere Informationen findest du unter Anzeigen deiner GitHub Codespaces-Nutzung.
Weitere Informationen zum Löschen eines Codespace findest du unter Einen Codespace löschen.
Unterbrechung der Verbindung bei Verwendung von GitHub Codespaces
GitHub Codespaces ist eine cloudbasierte Entwicklungsumgebung, für die eine Internetverbindung erforderlich ist. Wenn die Internetverbindung unterbrochen wird, während du in einem Codespace arbeitest, kannst du nicht auf deinen Codespace zugreifen. Alle ausgecheckten Änderungen werden jedoch gespeichert. Sobald die Internetverbindung wiederhergestellt ist, kannst du dich erneut mit deinem Codespace verbinden. Der Codespace weist in diesem Fall den exakt selben Zustand auf wie vor der Verbindungsunterbrechung. Wenn deine Internetverbindung instabil ist, solltest du deine Änderungen häufig committen und pushen.
Wenn du weißt, dass du häufig offline arbeiten wirst, kannst du deine devcontainer.json
-Datei mit der Erweiterung „Dev Containers“ für VS Code verwenden, um einen lokalen Entwicklungscontainer für dein Repository zu erstellen und anzufügen. Weitere Informationen findest du unter Entwickeln innerhalb eines Containers in der Visual Studio Code-Dokumentation.