Skip to main content

GitHub Codespaces mit GitHub CLI verwenden

Du kannst mit GitHub Codespaces direkt über deine Befehlszeile arbeiten, indem du gh, die GitHub-CLI verwendest.

Informationen zu GitHub CLI

GitHub CLI ist ein Open-Source-Tool zur Verwendung von GitHub über die Befehlszeile deines Computers. Wenn du über die Befehlszeile arbeitest, kannst du die GitHub CLI verwenden, um Zeit zu sparen und Kontextwechsel zu vermeiden. Weitere Informationen findest du unter Informationen zur GitHub CLI.

Du kannst GitHub Codespaces in der GitHub CLI für Folgendes verwenden:

Installieren der GitHub CLI

Installationsanweisungen für GitHub CLI findest du im GitHub CLI-Repository.

Verwenden der GitHub CLI

Wenn du dies noch nicht getan hast, führe gh auth login aus, um dich mit deinem GitHub-Konto zu authentifizieren.

Um gh für die Arbeit mit GitHub Codespaces zu verwenden, gibst du gh codespace SUBCOMMAND oder den Alias gh cs SUBCOMMAND ein.

Beispiele für verschiedene Befehle, die du mit GitHub Codespaces verwenden kannst:

  • Auflisten deiner aktuellen Codespaces, um zu überprüfen, ob du über einen Codespace für ein bestimmtes Repository verfügst:
    gh codespace list
  • Erstellen eines neuen Codespace für den erforderlichen Repositorybranch:
    gh codespace create -r github/docs -b main
  • Zugreifen per SSH auf den neuen Codespace:
    gh codespace ssh -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq
  • Weiterleiten eines Ports an deinen lokalen Computer:
    gh codespace ports forward 8000:8000 -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq

gh-Befehle für GitHub Codespaces

Die folgenden Abschnitte enthalten Beispielbefehle für die verschiedenen verfügbaren Vorgänge.

Eine vollständige Referenz der gh-Befehle für GitHub Codespaces, einschließlich Details aller verfügbaren Optionen für jeden Befehl, findest du in der Onlinehilfe zur GitHub CLI für gh codespace. Alternativ kannst du in der Befehlszeile auch gh codespace --help für die allgemeine Hilfe oder gh codespace SUBCOMMAND --help für die Hilfe zu einem bestimmten Unterbefehl verwenden.

Hinweis: Das Flag -c CODESPACE_NAME, das mit vielen Befehlen verwendet wird, ist optional. Wenn du es nicht angibst, wird eine Liste von Codespaces zur Auswahl angezeigt.

Auflisten aller Codespaces

gh codespace list

Die Liste enthält den eindeutigen Namen jedes Codespace, den du in anderen gh codespace-Befehlen verwenden kannst.

Ein Sternchen am Ende des Branchnamens für einen Codespace zeigt an, dass es in diesem Codespace Änderungen gibt, die noch nicht committet oder gepusht wurden.

Erstellen eines neuen Codespace

gh codespace create -r OWNER/REPO_NAME [-b BRANCH]

Weitere Informationen findest du unter Erstellen eines Codespaces für ein Repository.

Anzeigen von Details eines Codespace

gh codespace view

Nach dem Ausführen dieses Befehls wirst du aufgefordert, einen deiner vorhandenen Codespaces auszuwählen. Folgende Informationen werden angezeigt:

  • Name des Codespace
  • Zustand (z. B. „Verfügbar“ oder „Heruntergefahren“)
  • Repository
  • Befehl „git status“
  • Pfad zur Konfigurationsdatei des Entwicklungscontainers, die zum Erstellen des Codespace verwendet wird
  • Computertyp
  • Leerlauftimeout
  • Datum und Uhrzeit der Erstellung des Codespace
  • Beibehaltungsdauer

Weitere Informationen findest du in der GitHub-CLI-Referenz.

Beenden eines Codespace

gh codespace stop -c CODESPACE-NAME

Weitere Informationen findest du unter Ausführliche Informationen zu GitHub Codespaces.

Löschen eines Codespace

gh codespace delete -c CODESPACE-NAME

Weitere Informationen findest du unter Einen Codespace löschen.

Umbenennen eines Codespaces

gh codespace edit -c CODESPACE-NAME -d 'DISPLAY-NAME'

Weitere Informationen findest du unter Umbenennen eines Codespaces.

Neuerstellen eines Codespaces

gh codespace rebuild

Um eine vollständige Neuerstellung durchzuführen, füge --full am Ende dieses Befehls hinzu. Weitere Informationen findest du unter Neuerstellen des Containers in einem Codespace.

Wenn du diesen Befehl verwendest, um einen Codespace neu zu erstellen, wird die devcontainer.json-Datei verwendet, die derzeit im System des Codespaces gespeichert ist. Dies geschieht unabhängig davon, ob der aktuelle Status der Datei in der Quellcodeverwaltung gespeichert wurde. Weitere Informationen findest du unter Einführung in Entwicklungscontainer.

Zugreifen per SSH auf einen Codespace

Um an deinem Terminal Befehle auf dem Remotecomputer mit dem Codespace auszuführen, kannst per SSH auf den Codespace zugreifen.

gh codespace ssh -c CODESPACE-NAME

Hinweis: Der Codespace, mit dem du eine Verbindung herstellst, muss einen SSH-Server ausführen. Das Standard-Dev-Containerimage enthält einen SSH-Server, der automatisch gestartet wird. Wenn deine Codespaces nicht mithilfe des Standardimages erstellt werden, kannst du einen SSH-Server installieren und starten, indem du dem features-Objekt in deiner devcontainer.json-Datei Folgendes hinzufügst:

"features": {
    // ...
    "ghcr.io/devcontainers/features/sshd:1": {
        "version": "latest"
    },
    // ...
}


Weitere Informationen zur Datei devcontainer.json und dem Standardcontainerimage findest du unter Einführung in Entwicklungscontainer.

GitHub Codespaces erstellt automatisch einen lokalen SSH-Schlüssel, um eine nahtlose Authentifizierung zu ermöglichen. Weitere Informationen zum Herstellen einer Verbindung mit Verschlüsselung findest du unter gh codespace ssh.

Öffnen eines Codespace in Visual Studio Code

gh codespace code -c CODESPACE-NAME

VS Code muss auf deinem lokalen Computer installiert sein. Weitere Informationen findest du unter Verwenden von Github Codespaces in Visual Studio Code.

Öffnen eines Codespaces in JupyterLab

gh codespace jupyter -c CODESPACE-NAME

Die JupyterLab-Anwendung muss in dem Codespace installiert sein, den du öffnest. Das Standard-Dev-Containerimage enthält JupyterLab, sodass bei Codespaces, die mithilfe des Standardimages erstellt wurden, JupyterLab immer installiert ist. Weitere Informationen zum Standardimage findest du unter Einführung in Entwicklungscontainer und im devcontainers/images-Repository. Wenn du nicht das Standardimage in deiner Entwicklungscontainerkonfiguration verwendest, kannst du JupyterLab installieren, indem du das Feature ghcr.io/devcontainers/features/python zur Datei devcontainer.json hinzufügst. Du solltest die Option "installJupyterlab": true einfügen. Weitere Informationen findest du in der Infodatei für das Feature python im Repository devcontainers/features.

Kopieren einer Datei in/aus einem Codespace

gh codespace cp [-r] SOURCE(S) DESTINATION

Verwende das Präfix remote: für Datei- oder Verzeichnisnamen, um anzugeben, dass sie sich im Codespace befinden. Wie beim UNIX-Befehl cp gibt das erste Argument die Quelle und das letzte das Ziel an. Wenn das Ziel ein Verzeichnis ist, kannst du mehrere Quellen angeben. Verwende das Flag -r (rekursiv), wenn eine der Quellen ein Verzeichnis ist.

Die Speicherorte von Dateien und Verzeichnissen im Codespace sind relativ zum Stammverzeichnis der Remotebenutzer*innen.

Beispiele

  • Kopieren einer Datei vom lokalen Computer in das Verzeichnis $HOME eines Codespace:

    gh codespace cp myfile.txt remote:

  • Kopieren einer Datei in das Verzeichnis, in das ein Repository in einem Codespace ausgecheckt wurde:

    gh codespace cp myfile.txt remote:/workspaces/REPOSITORY-NAME

  • Kopieren einer Datei aus einem Codespace in das aktuelle Verzeichnis auf dem lokalen Computer:

    gh codespace cp remote:myfile.txt .

  • Kopieren von drei lokalen Dateien in das Verzeichnis $HOME/temp eines Codespace:

    gh codespace cp a1.txt a2.txt a3.txt remote:temp

  • Kopieren von drei Dateien aus einem Codespace in das aktuelle Arbeitsverzeichnis auf dem lokalen Computer:

    gh codespace cp remote:a1.txt remote:a2.txt remote:a3.txt .

  • Kopieren eines lokalen Verzeichnisses in das Verzeichnis $HOME eines Codespace:

    gh codespace cp -r mydir remote:

  • Kopieren eines Verzeichnisses aus einem Codespace auf den lokalen Computer mit Änderung des Verzeichnisnamens:

    gh codespace cp -r remote:mydir mydir-localcopy

Weitere Informationen zum Befehl gh codespace cp, einschließlich zusätzlicher Flags, die du verwenden kannst, findest du im Leitfaden zur GitHub CLI.

Ändern von Ports in einem Codespace

Du kannst einen Port in einem Codespace an einen lokalen Port weiterleiten. Der Port wird solange weitergeleitet, wie der Prozess ausgeführt wird. Um die Weiterleitung des Ports zu beenden, drückst du STRG+C.

gh codespace ports forward CODESPACE-PORT_NAME:LOCAL-PORT-NAME -c CODESPACE-NAME

Gib gh codespace ports ein, und wähle dann einen Codespace aus, um Details zu weitergeleiteten Ports anzuzeigen.

Du kannst die Sichtbarkeit eines weitergeleiteten Ports festlegen. Es gibt drei Sichtbarkeitseinstellungen:

  • private – Nur für dich sichtbar. Dies ist die Standardeinstellung, wenn du einen Port weiterleitest.
  • org – Sichtbar für Mitglieder der Organisation, die das Repository besitzt.
  • public – Für jeden sichtbar, der die URL und die Portnummer kennt.
gh codespace ports visibility CODESPACE-PORT:private|org|public -c CODESPACE-NAME

Du kannst mit einem Befehl die Sichtbarkeit mehrerer Ports festlegen. Beispiel:

gh codespace ports visibility 80:private 3000:public 3306:org -c CODESPACE-NAME

Weitere Informationen findest du unter Weiterleiten von Ports in deinem Codespace.

Zugreifen auf Codespaceprotokolle

Du kannst das Erstellungsprotokoll für einen Codespace anzeigen. Nachdem du diesen Befehl eingegeben hast, wirst du aufgefordert, die Passphrase für deinen SSH-Schlüssel einzugeben.

gh codespace logs -c CODESPACE-NAME

Weitere Informationen zum Erstellungsprotokoll findest du unter GitHub Codespaces-Protokolle.

Zugreifen auf Remoteressourcen

Mit der GitHub CLI-Erweiterung kannst du eine Brücke zwischen einem Codespace und deinem lokalen Computer erstellen, sodass der Codespace auf jede Remoteressource zugreifen kann, die über deinen Computer zugänglich ist. Weitere Informationen zur Verwendung der Erweiterung findest du unter Verwenden von GitHub CLI für den Zugriff auf Remoteressourcen.

Hinweis: Die GitHub CLI-Erweiterung liegt derzeit als public preview vor und kann sich noch ändern.

Ändern des Computertyps für einen Codespace

gh codespace edit -m MACHINE-TYPE-NAME

Weitere Informationen findest du auf der Registerkarte GitHub CLI unter Ändern des Computertyps für deinen Codespace.