Codespace のライフサイクル
GitHub Codespaces は構成可能で、プロジェクトに合わせてカスタマイズされた開発環境を作成できます。 プロジェクト用のカスタム開発環境を構成することにより、プロジェクトのすべてのユーザーに対して繰り返し可能な Codespace 構成を作成できます。
Codespace のライフサイクルは、Codespace を作成した時点で開始され、削除すると終了します。 実行中のプロセスに影響を与えることなく、アクティブな Codespace を切断して再接続できます。 プロジェクトに加えた変更を失うことなく、Codespace を停止して再起動できます。
Codespace を作成する
Codespace は、GitHub.com、Visual Studio Code で、または GitHub CLI を使用して作成できます。 Codespace を作成するには、次の 4 つの方法があります。
- 新しいプロジェクトを開始する GitHub テンプレートまたは GitHub.com 上の任意のテンプレート リポジトリから。
- 新機能の作業のために、リポジトリ内のブランチから。
- オープンしている pull request から、進行中の作業を探索するため。
- 特定の時点のバグを調査するリポジトリの履歴内のコミットから。
コードをテストするために Codespace を一時的に使用することも、同じ Codespace に戻って長時間実行される機能の作業に取り組むこともできます。
リポジトリごと、さらにはブランチごとに 1 つ以上の Codespace を作成できます。 ただし、作成できる Codespace の数と、同時に実行できる codespace の数には制限があります。 Codespace の最大数に達したときに、もう 1 つ作成しようとすると、メッセージが表示されます。 このメッセージは、新しい Codespace を作成する前に、既存の Codespace を削除削除する必要があることを示しています。
GitHub Codespaces で開発するたびに新しい Codespace を作成することも、機能用に長時間実行される Codespace を保持することもできます。 新しいプロジェクトを開始する場合は、テンプレートから Codespace を作成し、後で GitHub 上のリポジトリに公開します。
プロジェクトで作業するたびに新しい Codespace を作成する場合は、すべての新しいコミットが GitHub に確実に反映されるように、変更を定期的にプッシュする必要があります。 新しいプロジェクトに実行時間の長い Codespace を使用する場合、Codespace で作業を開始するたびに、リポジトリの既定のブランチからプルして、環境が最新のコミットを取得できるようにします。 ワークフローは、ローカル マシン上でプロジェクトを操作する場合と同様です。
リポジトリ管理者は、リポジトリの GitHub Codespaces プレビルドを有効にして、Codespace の作成を高速化できます。
詳細なチュートリアルとステップごとのガイダンスについては、このモジュールの最後にある「まとめ」ユニットに提示された、「GitHub Codespaces を使用したコーディングを学習するための初心者向けガイド」および「Codespace で開発する」というタイトルのリソースを参照してください。
Codespace の作成プロセス
GitHub codespace を作成する場合、次の 4 つのプロセスが発生します。
- 仮想マシンとストレージを Codespace に割り当てる。
- コンテナーを作成する。
- Codespace に接続する。
- 作成後のセットアップを行う。
Codespace に変更を保存する
Web 経由で Codespace に接続すると、自動保存が自動的に有効になり、特定の時間が経過した後に変更が保存されます。 デスクトップで実行されている Visual Studio Code を使用して Codespace に接続する場合は、自動保存を有効にする必要があります。
作業は、クラウド内の仮想マシンに保存されます。 Codespace を終了して停止し、後で、保存した作業に戻ることができます。 保存されていない変更がある場合、終了する前にそれらを保存するように求めるメッセージが表示されます。 ただし、Codespace を削除すると、作業は失われます。 作業を保存するには、変更をコミットしてリモート リポジトリにプッシュするか、テンプレートから Codespace を作成した場合は、作業を新しいリポジトリに公開する必要があります。
既存の Codespace を開く
アクティブな Codespace、または停止した Codespace は、GitHub.com、JetBrains IDE、Visual Studio Code で、または GitHub CLI を使用して再度開くことができます。
既存の Codespace を再開するには、Codespace が存在するリポジトリに移動し、, キーを選択し、[この codespace を再開する] を選択します。 または、ブラウザーで https://github.com/codespaces を開き、リポジトリを選択して、既存の Codespace を選択することもできます。
Codespace のタイムアウト
Codespace が非アクティブな場合、または Codespace を明示的に停止せずに終了した場合、アプリケーションは、非アクティブ状態になって一定の時間が経過した後にタイムアウトし、実行を停止します。 既定のタイムアウトは、非アクティブになってから 30 分後です。 Codespace がタイムアウトした場合、変更が最後に保存された時点のデータが保持されます。
GitHub Codespaces の使用中のインターネット接続
Codespace を使用するには、インターネット接続が必要です。 Codespace での作業中にインターネットへの接続が失われた場合、Codespace にアクセスすることはできません。 ただし、コミットされていない変更はすべて保存されます。 インターネット接続を再確立すると、接続が失われたときに残された状態と同じ状態で Codespace にアクセスできます。
インターネット接続が不安定な場合は、変更を頻繁にコミットしてプッシュする必要があります。
Codespace の終了または停止
stop コマンドを実行せずに Codespace を終了した場合、または Codespace を実行したまま何の操作も行わない場合、Codespace とその実行中のプロセスは、非アクティブ タイムアウト期間中続行されます。 既定の非アクティブ タイムアウト期間は 30 分です。 作成する Codespace に対して個人用タイムアウト設定を定義できますが、組織のタイムアウト ポリシーによって設定が却下される可能性があります。
CPU 料金は、実行中の Codespace に対してのみ発生します。 停止した Codespace に対しては、ストレージ コストのみが発生します。
Codespace を停止して再起動すると、変更を適用することができます。 たとえば、Codespace に使用するマシンの種類を変更した場合、変更を有効にするには、その Codespace を停止して再起動する必要があります。 Codespace を終了または停止すると、Codespace に再度接続するまで、コミットされていない変更はすべて保持されます。
また、エラーや予期しない問題が発生した場合は、Codespace を停止し、再起動または削除を選択できます。
Codespace を再構築する
Codespace を再構築して、開発コンテナーの構成に変更を実装できます。 ほとんどの場合、Codespace を再構築する代わりに、新しい Codespace を作成できます。 Codespace を再構築する場合、キャッシュからのイメージを使用することにより、再構築プロセスが高速化されます。 また、完全な再構築も実行できます。これにより、キャッシュがクリアされ、新しいイメージを使用してコンテナーが再構築されます。
Codespace でコンテナーを再構築すると、/workspaces ディレクトリの外部で加えた変更はクリアされます。
/workspaces ディレクトリ内で加えた変更 (Codespace を作成したリポジトリまたはテンプレートのクローンを含む) は、再構築後も保持されます。
Codespace を削除する
特定のタスクの Codespace を作成できます。 変更をリモート ブランチにプッシュした後、その Codespace を安全に削除できます。
Git コミットをプッシュせずに Codespace を削除しようとすると、リモート ブランチにまだプッシュされていない変更があることがエディターから通知されます。 必要な変更をプッシュしてから Codespace を削除することができます。 また、Codespace とコミットしていない変更をそのまま削除することも、新しい Codespace を作成せずに、コードを新しいブランチにエクスポートすることもできます。
停止され、指定した期間非アクティブなままになっている Codespace は自動的に削除されます。 非アクティブな Codespace は 30 日後に削除されますが、Codespace の保持期間をカスタマイズできます。