GitHub CLI について
GitHub CLI は、コンピューターのコマンド ラインから GitHub を使用するためのオープン ソース ツールです。 コマンドラインから作業しているときは、GitHub CLI を使用して時間を節約し、コンテキストの切り替えを回避できます。詳しくは、「GitHub CLI について」をご覧ください。
GitHub CLI 内の GitHub Codespaces を操作すると、次のことができます。
- すべての codespaces を一覧表示する
- 新しい codespace を作成する
- codespace の詳細を表示する
- codespace を停止する
- codespace を削除する
- codespace の名前を変更する
- codespace をリビルドする
- codespace に SSH 接続する
- Visual Studio Code で codespace を開く
- JupyterLab で codespace を開く
- codespace 間でのファイルのコピー
- codespace 内のポートの変更
- codespace ログにアクセスする
- リモート リソースにアクセスする
- codespace のマシンの種類を変更する
GitHub CLI のインストール
GitHub CLI のインストール手順については、GitHub CLI リポジトリを参照してください。
GitHub CLI の使用
まだの場合は、GitHub アカウントで gh auth login
を実行して認証を行います。
gh
を GitHub Codespaces の操作に使用するには、gh codespace SUBCOMMAND
またはそのエイリアス gh cs SUBCOMMAND
を入力します。
GitHub Codespaces を操作するために使用できる一連のコマンドの例として、次の操作を行うことができます。
- 現在の codespaces を一覧表示して、特定のリポジトリの codespace があるかどうかを確認します。
gh codespace list
- 必要なリポジトリ ブランチの新しい codespace を作成します。
gh codespace create -r github/docs -b main
- 新しい codespace に SSH 接続します。
gh codespace ssh -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq
- ローカル コンピューターにポートを転送します。
gh codespace ports forward 8000:8000 -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq
GitHub Codespaces 用の gh
コマンド
以下のセクションでは、使用可能な各操作のコマンドの例を示します。
各コマンドで使用可能なすべてのオプションの詳細を含む GitHub Codespaces の gh
コマンドの完全なリファレンスについては、「gh codespace」の GitHub CLI オンライン ヘルプを参照してください。 または、コマンド ラインで gh codespace --help
(一般的なヘルプ) または gh codespace SUBCOMMAND --help
(特定のサブコマンドのヘルプ) を使用できます。
Note
多数のコマンドで使用される -c CODESPACE_NAME
フラグは省略可能です。 省略すると、選択できる codespaces の一覧が表示されます。
すべての codespaces を一覧表示する
gh codespace list
リストには、他の gh codespace
コマンドで使用できる各 codespace の一意の名前が含まれています。
codespace のブランチ名の末尾にあるアスタリスクは、その codespace にコミットされていない、またはプッシュされていない変更があることを示します。
新しい codespace を作成する
gh codespace create -r OWNER/REPO_NAME [-b BRANCH]
詳しくは、「リポジトリの codespace を作成する」をご覧ください。
codespace の詳細を表示する
gh codespace view
このコマンドを実行すると、既存の codespace のいずれかを選択するように求められます。 その後、次の情報が表示されます。
- codespace の名称
- 状態 ("使用可能" や "シャットダウン" など)
- リポジトリ
- Git の状態
- codespace の作成に使用される開発コンテナー構成ファイルへのパス
- マシンの種類
- アイドル タイムアウト
- codespace が作成された日時
- 保持期間
詳細については、GitHub CLI リファレンスに関するページを参照してください。
codespace を停止する
gh codespace stop -c CODESPACE-NAME
詳しくは、「GitHub Codespaces の詳細」をご覧ください。
codespace を削除する
gh codespace delete -c CODESPACE-NAME
詳しくは、「codespace を削除する」をご覧ください。
codespace の名前を変更する
gh codespace edit -c CODESPACE-NAME -d 'DISPLAY-NAME'
詳しくは、「codespace の名前を変更する」をご覧ください。
codespace をリビルドする
gh codespace rebuild
完全なリビルドを実行するには、このコマンドの最後に --full
を追加します。 詳しくは、「codespace でのコンテナーのリビルド」をご覧ください。
このコマンドを使用して codespace をリビルドすると、codespace のシステムに現在保存されている devcontainer.json
ファイルが使用されます。 ファイルの現在の状態がソース管理に保存されているかどうかに関係なく、そのようになります。 詳しくは、「開発コンテナーの概要」をご覧ください。
codespace に SSH 接続する
リモート codespace コンピューターでコマンドを実行するには、ターミナルから codespace に SSH 接続できます。
gh codespace ssh -c CODESPACE-NAME
Note
接続する codespace では、SSH サーバーを実行している必要があります。 既定の開発コンテナー イメージには、自動的に開始される SSH サーバーが含まれています。 codespaces が既定のイメージから作成されていない場合は、devcontainer.json
ファイル内の features
オブジェクトに次を追加することで、SSH サーバーをインストールして起動できます。
"features": {
// ...
"ghcr.io/devcontainers/features/sshd:1": {
"version": "latest"
},
// ...
}
devcontainer.json
ファイルと既定のコンテナー イメージについて詳しくは、「開発コンテナーの概要」をご覧ください。
GitHub Codespaces では、シームレスな認証エクスペリエンスを提供するためにローカル SSH キーを自動的に作成します。 SSH 暗号化を使用した接続について詳しくは、「gh codespace ssh
」を参照してください。
Visual Studio Code
で codespace を開く
gh codespace code -c CODESPACE-NAME
ローカル コンピューターに VS Code がインストールされている必要があります。 詳しくは、「Visual Studio Code で GitHub Codespaces を使用する」をご覧ください。
JupyterLab で codespace を開く
gh codespace jupyter -c CODESPACE-NAME
JupyterLab アプリケーションは、開いている codespace にインストールされている必要があります。 既定の開発コンテナー イメージには JupyterLab が含まれているため、既定のイメージから作成された codespace には常に JupyterLab がインストールされます。 既定のイメージについて詳しくは、「開発コンテナーの概要」と devcontainers/images
リポジトリをご覧ください。 開発コンテナー構成で既定のイメージを使用していない場合は、devcontainer.json
ファイルに ghcr.io/devcontainers/features/python
機能を追加して JupyterLab をインストールできます。 オプション "installJupyterlab": true
を含める必要があります。 詳しくは、devcontainers/features
リポジトリにある python
機能の Readme をご覧ください。
codespace 間でのファイルのコピー
gh codespace cp [-r] SOURCE(S) DESTINATION
ファイル名またはディレクトリ名のプレフィックス remote:
を使用して、codespace 上にあることを示します。 UNIX cp
コマンドと同様に、最初の引数はコピー元を指定し、最後の引数はコピー先を指定します。 コピー先がディレクトリの場合は、複数のコピー元を指定できます。 いずれかのコピー元がディレクトリの場合は、-r
(再帰) フラグを使用します。
codespace 上のファイルとディレクトリの場所は、リモート ユーザーのホーム ディレクトリに対して相対的です。
例
-
ローカル コンピューターから codespace の
$HOME
ディレクトリにファイルをコピーします。gh codespace cp myfile.txt remote:
-
codespace でリポジトリがチェックアウトされているディレクトリにファイルをコピーします。
gh codespace cp myfile.txt remote:/workspaces/REPOSITORY-NAME
-
codespace からローカル コンピューター上の現在のディレクトリにファイルをコピーします。
gh codespace cp remote:myfile.txt .
-
次の 3 つのローカル ファイルを codespace の
$HOME/temp
ディレクトリにコピーします。gh codespace cp a1.txt a2.txt a3.txt remote:temp
-
codespace からローカル コンピューター上の現在の作業ディレクトリに次の 3 つのファイルをコピーします。
gh codespace cp remote:a1.txt remote:a2.txt remote:a3.txt .
-
次のローカル ディレクトリを codespace の
$HOME
ディレクトリにコピーします。gh codespace cp -r mydir remote:
-
codespace からローカル コンピューターにディレクトリをコピーし、ディレクトリ名を変更します。
gh codespace cp -r remote:mydir mydir-localcopy
使用できる追加フラグなど、gh codespace cp
コマンドの詳細については、GitHub CLI マニュアルを参照してください。
codespace 内のポートの変更
codespace 上のポートをローカル ポートに転送できます。 プロセスが実行されている限り、ポートは転送されたままです。 ポートの転送を停止するには、Control+C キーを押します。
gh codespace ports forward CODESPACE-PORT_NAME:LOCAL-PORT-NAME -c CODESPACE-NAME
転送されたポートの詳細を表示するには、gh codespace ports
を入力して codespace を選択します。
転送されたポートの可視性を設定できます。 3 種類の可視性の設定があります。
private
- 自分にのみ表示されます。 これはポートを転送するときの既定の設定です。org
- リポジトリを所有する組織のメンバーに表示されます。public
- URL とポート番号を知っているすべてのユーザーに表示されます。
gh codespace ports visibility CODESPACE-PORT:private|org|public -c CODESPACE-NAME
1 つのコマンドを使用して、複数のポートの可視性を設定できます。 次に例を示します。
gh codespace ports visibility 80:private 3000:public 3306:org -c CODESPACE-NAME
詳しくは、「codespace でのポートの転送」をご覧ください。
codespace ログにアクセスする
codespace の作成ログを確認できます。 このコマンドを入力すると、SSH キーのパスフレーズを入力するように求められます。
gh codespace logs -c CODESPACE-NAME
作成ログについて詳しくは、「GitHub Codespaces ログ」をご覧ください。
リモート リソースにアクセスする
GitHub CLI 拡張機能を使用すると、codespace とご自分のローカル コンピューターの間にブリッジを作成し、コンピューターからアクセスできるあらゆるリモート リソースに codespace がアクセスできるようにすることができます。 拡張機能の使用方法について詳しくは、GitHub CLI を使用したリモート リソースへのアクセスに関する記事をご覧ください。
Note
GitHub CLI 拡張情報は現在 パブリック プレビュー 段階であり、変更される可能性があります。
codespace のマシンの種類を変更する
gh codespace edit -m MACHINE-TYPE-NAME
詳しくは、「codespace のマシンの種類を変更する」の「GitHub CLI」タブをご覧ください。