Note
- JetBrains IDE での GitHub Codespaces の使用は現在 パブリック プレビュー 段階であり、変更される可能性があります。
- JetBrains IDE のコードスペースで作業するには、JetBrains ゲートウェイのリリース 2023.3.* または 2024.1.* を使用する必要があります。
GitHub Codespaces でのソース管理について
必要なすべての Git アクションを codespace 内で直接実行できます。 たとえば、リモート リポジトリからの変更のフェッチ、ブランチの切り替え、新しいブランチの作成、変更のコミットとプッシュ、pull request の作成を行うことができます。 Codespace 内の統合ターミナルを使用して Git コマンドを入力するか、アイコンとメニューオプションをクリックして最も一般的な Git タスクをすべて完了することができます。 このガイドでは、ソースコントロールにグラフィカルユーザインターフェースを使用する方法について説明します。
Visual Studio Code の Git サポートについて詳しくは、Visual Studio Code ドキュメントの「VS Code でのバージョン コントロールの使用」をご覧ください。
Visual Studio Code Web クライアントのソース管理では、Visual Studio Code デスクトップ アプリケーションと同じワークフローが使用されます。 詳しくは、Visual Studio Code ドキュメントの「VS Code でのバージョン コントロールの使用」をご覧ください。
GitHub Codespaces を使用してファイルを更新するための一般的なワークフローは次のとおりです。
- GitHub のリポジトリのデフォルトブランチから、codespace を作成します。 「リポジトリの codespace を作成する」をご覧ください。
- Codespace で、作業する新しいブランチを作成します。
- 変更を加えて保存します。
- 変更をコミットします。
- プルリクエストを発行します。
Note
既定では、GitHub Codespaces は HTTPS プロトコルを使用してリモート リポジトリとの間でデータを転送し、codespace の作成元のリポジトリへの読み取りおよび書き込みアクセス権限を含む GITHUB_TOKEN
構成を使用して認証します。 認証に問題がある場合は、「リポジトリに対する認証のトラブルシューティング」を参照してください。
自動フォークについて
読み取りアクセス権しか持っていないリポジトリの codespace を作成するには、リポジトリをフォークするアクセス許可が必要です。
codespace を作成する前にリポジトリをフォークする必要はありません。 たとえば、リポジトリから codespace を作成してプロジェクトを確認し、試験的な変更を行い、必要なくなった場合は codespace を削除できます。
codespace からコミットするか、新しいブランチをプッシュすると、GitHub Codespaces は、アカウントの下にリポジトリのフォークを作成して codespace にリンクするか、リポジトリ用のフォークが既にある場合は codespace を既存のフォークにリンクします。 その後、フォークに変更をプッシュし、pull request を作成して、アップストリーム リポジトリへの変更を提案できます。
コマンド ラインからコミットすると、codespace を新規または既存のフォークにリンクするかどうかを確認するプロンプトが表示されます。 「y
」と入力して続けます。 VS Code の [ソース管理] ビュー、または JetBrains IDE のナビゲーション バーから変更をコミットすると、メッセージが表示されずに codespace がフォークに自動的にリンクされます。
Note
- フォーク リポジトリを削除すると、フォークにリンクされている codespace は、最初にアップストリーム リポジトリから作成した場合でも削除されます。
- コマンド ラインからコミットするか、「
n
」と入力して新しいフォークを拒否する場合、VS Code のソース管理ビューからではなく、コマンド ラインから変更をプッシュしてください。 ソース管理ビューを使う場合でも、VS Code では、プッシュ時、フォークの自動作成が試行されます。
GitHub Codespaces によってフォークが作成されるか、codespace が既存のフォークにリンクされると、次のことが発生します。
- codespace に関連付けられているアクセス トークンは、アップストリーム リポジトリへの
read
アクセス許可に加えて、フォークに対するread
およびwrite
アクセス許可が含まれるように更新されます。 - Git 設定では、アップストリーム リポジトリは
upstream
という名前に再割り当てされ、フォークはorigin
という名前の下に新しいリモート リポジトリとして追加されます。
既定では、VS Code の [変更の同期] ボタンなど、エディターのユーザー インターフェイスからアクセスするソース管理コマンドはフォークがターゲットになります。 コマンド ラインから作業している場合は、origin
を使用してフォークを参照し、upstream
を使用してアップストリーム リポジトリを参照できます。 たとえば、アップストリーム リポジトリから変更をフェッチして、プロジェクトに対する最新の変更を使用して codespace が最新になるようにできます。
git fetch upstream
いくつかの変更を行ったら、フォークの機能ブランチにプッシュできます。
git push origin my-feature-branch
詳しくは、「フォークについて」を参照してください。
テンプレートから作成された codespace の発行
テンプレート リポジトリまたは "あなたの codespaces" ページのテンプレートから codespace を作成する場合、codespace を発行するまで、GitHub のリポジトリに作業は格納されません。 詳しくは、「テンプレートから codespace を作成する」を参照してください。
codespace で作業している場合は、VS Code Web クライアントまたはデスクトップ アプリケーションから発行できます。
-
アクティビティ バーで、 [ソース管理] ビューをクリックします。
-
変更をステージするには、追加または変更したファイルの横の [+] をクリックします。複数のファイルを変更してすべてをステージする場合は、[Changes] の横のものをクリックします。
Note
GitHub の空のテンプレートから開始した場合、ディレクトリを Git リポジトリとして既に初期化していない限り、変更の一覧は表示されません。 空のテンプレートから作成された codespace を発行するには、[ソース管理] ビューで [GitHub に発行] をクリックし、手順 5 に進みます。
-
ステージングされた変更をコミットするには、行った変更を説明するコミット メッセージを入力し、 [コミット] をクリックします。
-
[ブランチを公開する] をクリックします。
-
[リポジトリ名] ドロップダウンで、新しいリポジトリの名前を入力し、 [GitHub プライベート リポジトリに発行] または [GitHub パブリック リポジトリに発行] を選びます。
新しいリポジトリの所有者は、codespace を作成した GitHub アカウントになります。
-
必要に応じて、エディターの右下隅に表示されるポップアップで、 [GitHub で開く] をクリックして、GitHub の新しいリポジトリを表示します。
ブランチの作成または切り替え
-
現在のブランチがステータス バーに表示されていない場合は、codespace の下部でステータス バーを右クリックし、 [ソース コントロール] を選択します。
-
ステータスバーでブランチ名をクリックします。
-
ドロップダウンで、切り替えるブランチをクリックするか、新しいブランチ名を入力して [新しいブランチの作成] をクリックします。
Tip
他のユーザーが最近リモート リポジトリのファイルを変更した場合、切り替え後のブランチでは、その変更を自分の codespace にプルするまで、それらの変更内容が表示されない場合があります。
変更をコミットする
-
アクティビティ バーで、 [ソース管理] ビューをクリックします。
-
変更をステージングするには、変更したファイルの横の [] をクリックします。複数のファイルを変更してすべてをステージングする場合は、 [変更] の横のものをクリックします。
-
テキスト ボックスに、行った変更について説明するコミット メッセージを入力します。
-
[コミット] ボタンの右側にある下矢印をクリックし、ドロップダウン メニューから [コミットしてプッシュ] を選びます。
リモートリポジトリから変更をプルする
リモートリポジトリからいつでも codespace に変更をプルできます。
-
アクティビティ バーで、 [ソース管理] ビューをクリックします。
-
サイド バーの上部にある [] をクリックします。
-
ドロップダウン メニューの [プル] をクリックします。
codespace の作成後に開発コンテナー構成が変更された場合は、codespace のコンテナーを再構築することで変更を適用できます。 詳しくは、「開発コンテナーの概要」を参照してください。
新しい変更を自動的にフェッチするように codespace を設定する
リモートリポジトリに対して行われた新しいコミットの詳細を自動的にフェッチするように codespace を設定できます。 これにより、リポジトリのローカルコピーが古くなっているかどうかを確認できます。古くなっている場合は、新しい変更をプルすることができます。
フェッチ操作でリモートリポジトリの新しい変更が検出されると、ステータスバーに新しいコミットの数が表示されます。 その後、変更をローカルコピーにプルできます。
-
アクティビティ バーの下部にある [管理] ボタンをクリックします。
-
メニューで、[設定] をクリックします。
-
[設定] ページで、次を検索します:
autofetch
。 -
現在のリポジトリに登録されているすべてのリモートの更新の詳細をフェッチするには、Git: Autofetch を
all
に設定します。 -
各自動フェッチ間の秒数を変更する場合は、Git: Autofetch Period の値を編集します。
プルリクエストを発行する
-
変更をリポジトリのローカル コピーにコミットしたら、[ソース管理] サイド バーの上部にある pull request アイコンをクリックします。
-
マージ元のローカルブランチとリポジトリ、およびマージ先のリモートブランチとリポジトリが正しいことを確認します。 そして、プルリクエストにタイトルと説明を付けます。
-
[作成] をクリックします。
リモートリポジトリに変更をプッシュする
保存してコミットした変更をプッシュできます。 それにより、変更がリモートリポジトリの上流ブランチに適用されます。 プルリクエストの作成準備が整っていない場合、または GitHub でプルリクエストを作成する場合は、この操作を行うことをお勧めします。
-
サイド バーの上部にある [] をクリックします。
-
ドロップダウン メニューの [プッシュ] をクリックします。
テンプレートから作成された codespace の発行
テンプレート リポジトリまたは "あなたの codespaces" ページのテンプレートから codespace を作成する場合、codespace を発行するまで、GitHub のリポジトリに作業は格納されません。 詳しくは、「テンプレートから codespace を作成する」を参照してください。
codespace で作業している場合は、VS Code Web クライアントまたはデスクトップ アプリケーションから発行できます。
-
アクティビティ バーで、 [ソース管理] ビューをクリックします。
-
変更をステージするには、追加または変更したファイルの横の [+] をクリックします。複数のファイルを変更してすべてをステージする場合は、[Changes] の横のものをクリックします。
Note
GitHub の空のテンプレートから開始した場合、ディレクトリを Git リポジトリとして既に初期化していない限り、変更の一覧は表示されません。 空のテンプレートから作成された codespace を発行するには、[ソース管理] ビューで [GitHub に発行] をクリックし、手順 5 に進みます。
-
ステージングされた変更をコミットするには、行った変更を説明するコミット メッセージを入力し、 [コミット] をクリックします。
-
[ブランチを公開する] をクリックします。
-
[リポジトリ名] ドロップダウンで、新しいリポジトリの名前を入力し、 [GitHub プライベート リポジトリに発行] または [GitHub パブリック リポジトリに発行] を選びます。
新しいリポジトリの所有者は、codespace を作成した GitHub アカウントになります。
-
必要に応じて、エディターの右下隅に表示されるポップアップで、 [GitHub で開く] をクリックして、GitHub の新しいリポジトリを表示します。
ブランチの作成または切り替え
-
現在のブランチがステータス バーに表示されていない場合は、codespace の下部でステータス バーを右クリックし、 [ソース コントロール] を選択します。
-
ステータスバーでブランチ名をクリックします。
-
ドロップダウンで、切り替えるブランチをクリックするか、新しいブランチ名を入力して [新しいブランチの作成] をクリックします。
Tip
他のユーザーが最近リモート リポジトリのファイルを変更した場合、切り替え後のブランチでは、その変更を自分の codespace にプルするまで、それらの変更内容が表示されない場合があります。
変更をコミットする
-
アクティビティ バーで、 [ソース管理] ビューをクリックします。
-
変更をステージングするには、変更したファイルの横の [] をクリックします。複数のファイルを変更してすべてをステージングする場合は、 [変更] の横のものをクリックします。
-
テキスト ボックスに、行った変更について説明するコミット メッセージを入力します。
-
[コミット] ボタンの右側にある下矢印をクリックし、ドロップダウン メニューから [コミットしてプッシュ] を選びます。
リモートリポジトリから変更をプルする
リモートリポジトリからいつでも codespace に変更をプルできます。
-
アクティビティ バーで、 [ソース管理] ビューをクリックします。
-
サイド バーの上部にある [] をクリックします。
-
ドロップダウン メニューの [プル] をクリックします。
codespace の作成後に開発コンテナー構成が変更された場合は、codespace のコンテナーを再構築することで変更を適用できます。 詳しくは、「開発コンテナーの概要」を参照してください。
新しい変更を自動的にフェッチするように codespace を設定する
リモートリポジトリに対して行われた新しいコミットの詳細を自動的にフェッチするように codespace を設定できます。 これにより、リポジトリのローカルコピーが古くなっているかどうかを確認できます。古くなっている場合は、新しい変更をプルすることができます。
フェッチ操作でリモートリポジトリの新しい変更が検出されると、ステータスバーに新しいコミットの数が表示されます。 その後、変更をローカルコピーにプルできます。
-
アクティビティ バーの下部にある [管理] ボタンをクリックします。
-
メニューで、[設定] をクリックします。
-
[設定] ページで、次を検索します:
autofetch
。 -
現在のリポジトリに登録されているすべてのリモートの更新の詳細をフェッチするには、Git: Autofetch を
all
に設定します。 -
各自動フェッチ間の秒数を変更する場合は、Git: Autofetch Period の値を編集します。
プルリクエストを発行する
-
変更をリポジトリのローカル コピーにコミットしたら、[ソース管理] サイド バーの上部にある pull request アイコンをクリックします。
-
マージ元のローカルブランチとリポジトリ、およびマージ先のリモートブランチとリポジトリが正しいことを確認します。 そして、プルリクエストにタイトルと説明を付けます。
-
[作成] をクリックします。
リモートリポジトリに変更をプッシュする
保存してコミットした変更をプッシュできます。 それにより、変更がリモートリポジトリの上流ブランチに適用されます。 プルリクエストの作成準備が整っていない場合、または GitHub でプルリクエストを作成する場合は、この操作を行うことをお勧めします。
-
サイド バーの上部にある [] をクリックします。
-
ドロップダウン メニューの [プッシュ] をクリックします。
ブランチの作成または切り替え
-
ステータス バーの右側にあるブランチ名をクリックします。
-
ポップアップ メニューで、次のいずれかを行います。
-
現在のブランチに基づいて新しいブランチを作成するには、 [新しいブランチ] を選びます。
新しいブランチの名前を入力し、 [作成] をクリックします。
-
既存のブランチをチェックアウトするには、チェックアウトするブランチの名前の入力を始めます。一覧でそのブランチをクリックしたら、 [チェックアウト] をクリックします。
Tip
他のユーザーが最近リモート リポジトリのファイルを変更した場合、切り替え後のブランチでは、その変更を自分の codespace にプルするまで、それらの変更内容が表示されない場合があります。
-
変更をコミットする
-
ナビゲーション バーの右側にあるチェック マークをクリックします。
-
[変更のコミット] ダイアログで、コミット メッセージを入力します。
-
[コミット] をクリックします。
または、 [コミット] の横にある下向き矢印をクリックし、 [コミットしてプッシュ] をクリックします。
リモートリポジトリから変更をプルする
リモート リポジトリ上の同じブランチから変更をプルし、codespace で作業しているリポジトリのコピーにそれらの変更を適用できます。
-
ナビゲーション バーの右側で、下向きの矢印をクリックします。
-
[プロジェクトの更新] ダイアログで、受信した変更をマージまたはリベースするかどうかを選びます。
-
[OK] をクリックします。
リモートリポジトリに変更をプッシュする
保存してコミットした変更をプッシュできます。 それにより、変更がリモートリポジトリの上流ブランチに適用されます。 プルリクエストの作成準備が整っていない場合、または GitHub でプルリクエストを作成する場合は、この操作を行うことをお勧めします。
-
ナビゲーション バーの右側で、上向きの矢印をクリックします。
-
[コミットのプッシュ] ダイアログで、 [プッシュ] をクリックします。