Der Codespace-Lebenszyklus

Abgeschlossen

GitHub Codespaces ist konfigurierbar, sodass Sie eine angepasste Entwicklungsumgebung für Ihr Projekt erstellen können. Durch die Konfiguration einer benutzerdefinierten Entwicklungsumgebung für Ihr Projekt verfügen Sie über eine wiederholbare Codespace-Konfiguration für alle Benutzer*innen Ihres Projekts.

Der Lebenszyklus eines Codespace beginnt beim Erstellen des Codespace und endet, wenn Sie ihn löschen. Sie können eine Verbindung mit einem aktiven Codespace trennen und erneut herstellen, ohne dass die ausgeführten Prozesse dadurch beeinträchtigt werden. Sie können einen Codespace beenden und neu starten, ohne Änderungen zu verlieren, die Sie an Ihrem Projekt vorgenommen haben.

Diagramm eines Zirkellebenszyklus eines Codespaces, der mit dem Erstellen beginnt und mit dem Löschen endet.

Erstellen eines Codespace

Sie können einen Codespace auf GitHub.com, in Visual Studio Code oder über die GitHub CLI erstellen. Es gibt vier Möglichkeiten, einen Codespace zu erstellen:

  • über eine GitHub-Vorlage oder ein beliebiges Vorlagenrepository auf GitHub.com, um ein neues Projekt zu starten
  • Über einen Branch in Ihrem Repository für die Arbeit an neuen Features.
  • Aus einer geöffneten Pull-Anforderung, um die laufende Arbeit zu erkunden.
  • über einen Commit im Verlauf eines Repositorys, um einen Fehler zu einem bestimmten Zeitpunkt zu untersuchen

Sie können vorübergehend einen Codespace verwenden, um Code zu testen, oder Sie können zum selben Codespace zurückkehren, um an langen Featureausführungen zu arbeiten.

Sie können pro Repository oder sogar pro Branch mehr als einen Codespace erstellen. Es gibt jedoch Grenzwerte für die Anzahl der Codespaces, die Sie erstellen und gleichzeitig ausführen können. Wenn Sie die maximale Anzahl von Codespaces erreichen und versuchen, einen weiteren zu erstellen, wird eine Meldung angezeigt. Die Meldung teilt Ihnen mit, dass ein vorhandener Codespace entfernt/gelöscht werden muss, bevor ein neuer Codespace erstellt werden kann.

Sie können bei jeder Entwicklung in GitHub Codespaces einen neuen Codespace erstellen oder einen lange ausgeführten Codespace für ein Feature weiterverwenden. Wenn Sie ein neues Projekt beginnen, können Sie einen Codespace auf Basis einer Vorlage erstellen und ihn später in einem Repository auf GitHub veröffentlichen.

Falls Sie jedes Mal, wenn Sie an einem Projekt arbeiten, einen neuen Codespace erstellen, sollten Sie Ihre Änderungen regelmäßig pushen, damit die neuen Commits auf GitHub verfügbar sind. Wenn Sie einen Codespace mit langer Ausführungszeit für ein neues Projekt verwenden, sollten Sie jedes Mal zu Beginn einen Pull aus dem Standardbranch des Repositorys durchführen, um Ihrer Umgebung zu ermöglichen, die letzten Commits abzurufen. Der Workflow ähnelt dem Arbeiten mit einem Projekt auf einem lokalen Computer.

Repositoryadministrator*innen können GitHub Codespaces-Prebuilds für ein Repository aktivieren, um die Codespace-Erstellung zu beschleunigen.

Eine ausführliche exemplarische Vorgehensweise und eine schrittweise Anleitung finden Sie in den Ressourcen mit dem Titel "Ein Anfängerleitfaden" zum Erlernen von Code mit GitHub Codespaces und Developing in einem Codespace , der sich am Ende dieses Moduls in der Zusammenfassungseinheit befindet.

Codespace-Erstellungsprozess

Diagramm eines GitHub-Codespaces und wie er sich von Ihrem Code-Editor in einen Docker-Container verbindet.

Wenn Sie einen GitHub Codespace erstellen, laufen vier Prozesse ab:

  1. Ihrem Codespace werden ein virtueller Computer und Speicher zugewiesen.
  2. Es wird ein neuer Container erstellt.
  3. Es wird eine Verbindung zum Codespace hergestellt.
  4. Es wird ein Setup nach der Erstellung vorgenommen.

Speichern von Änderungen in einem Codespace

Wenn Sie über das Web eine Verbindung zu einem Codespace herstellen, wird AutoSpeichern automatisch aktiviert, um Änderungen zu speichern, nachdem eine bestimmte Zeit vergangen ist. Wenn Sie über Visual Studio Code, das auf Ihrem Desktop ausgeführt wird, eine Verbindung zu einem Codespace herstellen, müssen Sie „Automatisches Speichern“ aktivieren.

Ihre Arbeit wird auf einem virtuellen Computer in der Cloud gespeichert. Sie können einen Codespace schließen und beenden und zu einem späteren Zeitpunkt zur gespeicherten Arbeit zurückkehren. Wenn Sie über Änderungen verfügen, die noch nicht gespeichert wurden, erhalten Sie die Aufforderung, sie vor dem Schließen zu speichern. Wenn Ihr Codespace jedoch gelöscht wird, geht Ihre Arbeit verloren. Um Ihre Arbeit beizubehalten, müssen Sie Ihre Änderungen committen und in Ihr Remoterepository pushen oder Ihre Arbeit in einem neuen Remoterepository veröffentlichen, wenn Sie Ihren Codespace aus einer Vorlage erstellt haben.

Öffnen eines vorhandenen Codespace

Sie können alle aktiven oder beendeten Codespaces auf GitHub.com, in einer JetBrains-IDE, in Visual Studio Code oder mithilfe der GitHub CLI erneut öffnen.

Um einen vorhandenen Codespace fortzusetzen, können Sie zum Repository wechseln, in dem der Codespace vorhanden ist, wählen Sie den , Schlüssel aus, und wählen Sie dann "Diesen Codespace fortsetzen" aus. Alternativ können Sie https://github.com/codespaces im Browser öffnen, das Repository auswählen und dann den vorhandenen Codespace auswählen.

Timeouts für einen Codespace

Wenn ein Codespace inaktiv ist oder Sie Ihren Codespace ohne explizites Beenden verlassen, entsteht ein Anwendungstimeout nach einem bestimmten Zeitraum der Inaktivität, und die Ausführung wird beendet. Das Standardtimeout sind 30 Minuten Inaktivität. Wenn ein Timeout für einen Codespace auftritt, werden Ihre Daten zum Zeitpunkt des letzten Speichervorgangs beibehalten.

Internetverbindung bei Verwendung von GitHub Codespaces

Ein Codespace erfordert eine Internetverbindung. Wenn die Verbindung mit dem Internet während der Arbeit in einem Codespace unterbrochen wird, können Sie nicht auf Ihren Codespace zugreifen. Alle nicht committeten Änderungen werden aber gespeichert. Wenn Sie die Internetverbindung wiederhergestellt haben, können Sie auf den Codespace in dem Zustand zugreifen, in dem er beim Verbindungsverlust verlassen wurde.

Wenn Ihre Internetverbindung instabil ist, sollten Sie Ihre Änderungen regelmäßig committen und pushen.

Schließen oder Beenden eines Codespace

Wenn Sie den Codespace verlassen, ohne den Beendigungsbefehl auszuführen, oder den Codespace ohne Interaktion laufen lassen, werden der Codespace und seine laufenden Prozesse während des Zeitlimitzeitraums fortgesetzt. Der Timeoutzeitraum bei Inaktivität beträgt standardmäßig 30 Minuten. Sie können Ihre eigene Zeitlimiteinstellung für den von Ihnen erstellten Codespace definieren. Diese Einstellung kann jedoch durch eine Zeitlimitrichtlinie der Organisation außer Kraft gesetzt werden.

Nur beim Ausführen von Codespaces fallen CPU-Gebühren an. Für einen beendeten Codespace fallen nur Speicherkosten an.

Sie können einen Codespace beenden und neu starten, um Änderungen anzuwenden. Wenn Sie z. B. den für Ihren Codespace verwendeten Computertyp ändern, müssen Sie den Codespace beenden und neu starten, damit die Änderungen wirksam werden. Wenn Sie den Codespace schließen oder beenden, werden alle nicht committeten Änderungen beibehalten, bis Sie noch einmal eine Verbindung mit dem Codespace herstellen.

Sie können Ihren Codespace auch beenden und ihn neu starten oder löschen, wenn ein Fehler oder ein unerwartetes Verhalten auftritt.

Erneutes Kompilieren eines Codespace

Sie können Ihren Codespace neu kompilieren, um Änderungen an Ihrer Entwicklungscontainerkonfiguration zu implementieren. Für die meisten Anwendungsfälle ist das Erstellen eines neuen Codespace eine Alternative zum erneuten Kompilieren eines bestehenden Codespace. Wenn Sie Ihren Codespace neu kompilieren, beschleunigen Images aus dem Cache diesen Prozess. Sie können auch eine vollständige erneute Kompilierung durchführen, um den Cache zu löschen und den Container mit neuen Images neu zu kompilieren.

Wenn Sie den Container in einem Codespace neu kompilieren, werden Änderungen, die Sie außerhalb des Verzeichnisses /workspaces vorgenommen haben, gelöscht. Änderungen innerhalb des Verzeichnisses /workspaces, das den Klon des Repositorys oder der Vorlage enthält, auf deren Basis Sie den Codespace erstellt haben, bleiben bei einer erneuten Kompilierung erhalten.

Löschen eines Codespace

Sie können einen Codespace für eine bestimmte Aufgabe erstellen. Nachdem Sie Ihre Änderungen an einen Remotebranch übertragen haben, können Sie diesen Codespace bedenkenlos löschen.

Wenn Sie versuchen, einen Codespace mit nicht gepushten Git-Commits zu löschen, werden Sie in Ihrem Editor benachrichtigt, dass Änderungen vorliegen, die noch nicht an einen Remotebranch gepusht wurden. Sie können alle gewünschten Änderungen pushen und dann Ihren Codespace löschen. Sie können auch Ihren Codespace und alle nicht committeten Änderungen löschen oder den Code in einen neuen Branch exportieren, ohne einen neuen Codespace zu erstellen.

Beendete Codespaces, die für einen bestimmten Zeitraum inaktiv bleiben, werden automatisch gelöscht. Inaktive Codespaces werden nach 30 Tagen gelöscht, aber Sie können die Codespace-Aufbewahrungsintervalle anpassen.