Skip to main content

Codespace でソースコントロールを使用する

Codespace 内のファイルに変更を加えた後、変更をすばやくコミットして、更新をリモートリポジトリにプッシュできます。

ソース管理 GitHub Codespaces について

必要なすべての Git アクションを codespace 内で直接実行できます。 たとえば、リモート リポジトリからの変更のフェッチ、ブランチの切り替え、新しいブランチの作成、変更のコミットとプッシュ、pull request の作成を行うことができます。 Codespace 内の統合ターミナルを使用して Git コマンドを入力するか、アイコンとメニューオプションをクリックして最も一般的な Git タスクをすべて完了することができます。 このガイドでは、ソースコントロールにグラフィカルユーザインターフェースを使用する方法について説明します。

Visual Studio Codeでの Git サポートの詳細については、VS Codeドキュメントの「Visual Studio Codeでのバージョン管理の使用」を参照してください。

Visual Studio Code Web クライアントのソース管理では、Visual Studio Code デスクトップ アプリケーションと同じワークフローが使用されます。 詳細については、VS Codeドキュメントの「Visual Studio Codeでのバージョン管理の使用」を参照してください。

GitHub Codespacesを使用してファイルを更新する一般的なワークフローは次のとおりです。

  • GitHubのリポジトリの既定のブランチから、コードスペースを作成します。 「リポジトリの codespace を作成する」を参照してください。
  • Codespace で、作業する新しいブランチを作成します。
  • 変更を加えて保存します。
  • 変更をコミットします。
  • プルリクエストを発行します。

メモ

既定では、 GitHub Codespaces は HTTPS プロトコルを使用してリモート リポジトリとの間でデータを転送し、コードスペースを作成するリポジトリへの読み取りおよび書き込みアクセスを使用して構成された GITHUB_TOKEN で認証します。 認証に問題がある場合は、「リポジトリに対する認証のトラブルシューティング」をご覧ください。

自動フォークについて

読み取りアクセス権しか持っていないリポジトリの codespace を作成するには、リポジトリをフォークするアクセス許可が必要です。

codespace を作成する前にリポジトリをフォークする必要はありません。 たとえば、リポジトリから codespace を作成してプロジェクトを確認し、試験的な変更を行い、必要なくなった場合は codespace を削除できます。

コードスペースからコミットするか、新しいブランチをプッシュすると、GitHub Codespaces は、自分のアカウントにそのリポジトリのフォークを作成してコードスペースに関連付けるか、すでにそのリポジトリのフォークを持っている場合は、コードスペースを既存のフォークに関連付けます。 その後、フォークに変更をプッシュし、pull request を作成して、アップストリーム リポジトリへの変更を提案できます。

コマンド ラインからコミットすると、codespace を新規または既存のフォークにリンクするかどうかを確認するプロンプトが表示されます。 「y」と入力して続けます。 VS Codeのソース管理ビューから変更をコミットすると、メッセージが表示されずにコードスペースがフォークに自動的にリンクされます。

メモ

  • フォーク リポジトリを削除すると、フォークにリンクされている codespace は、最初にアップストリーム リポジトリから作成した場合でも削除されます。
  • コマンド ラインからコミットを行い、 n入力して新しいフォークを拒否する場合は、 VS Codeのソース管理ビューからではなく、コマンド ラインから変更をプッシュする必要があります。 ソース管理ビューを使用する場合、 VS Code は引き続きプッシュ時にフォークの作成を試みます。

GitHub Codespacesがフォークを作成するか、コードスペースを既存のフォークにリンクすると、次のことが発生します。

  • codespace に関連付けられているアクセス トークンは、アップストリーム リポジトリへの read アクセス許可に加えて、フォークに対する write および read アクセス許可が含まれるように更新されます。
  • Git 設定では、アップストリーム リポジトリは upstream という名前に再割り当てされ、フォークは origin という名前の下に新しいリモート リポジトリとして追加されます。

既定では、エディターのユーザー インターフェイスからアクセスするソース管理コマンド (VS Codeの [変更の同期] ボタンなど) は、フォークを対象とします。 コマンド ラインから作業している場合は、origin を使用してフォークを参照し、upstream を使用してアップストリーム リポジトリを参照できます。 たとえば、アップストリーム リポジトリから変更をフェッチすることで、プロジェクトの最新の変更によりコードスペースを最新の状態に保つことができます。

git fetch upstream

いくつかの変更を行ったら、それをフォークのフィーチャーブランチにプッシュできます。

git push origin my-feature-branch

詳しくは、「フォーク」をご覧ください。

テンプレートから作成された Codespace の公開

テンプレート リポジトリまたは [コードスペース] ページのテンプレートからコードスペースを作成する場合、コードスペースを発行するまで、その作業は GitHub のリポジトリに格納されません。 詳しくは、「テンプレートから codespace を作成する」をご覧ください。

codespace で作業している場合は、VS Code Web クライアントまたはデスクトップ アプリケーションから発行できます。

  1. アクティビティ バーで、 [ソース管理] ビューをクリックします。

    [ソース管理] ボタンがオレンジ色の枠線で強調されている VS Code アクティビティ バーのスクリーンショット。

  2. 変更をステージするには、追加または変更したファイルの横の [+] をクリックします。複数のファイルを変更してすべてをステージする場合は、[Changes] の横のものをクリックします。

    [ソース管理] サイド バーのスクリーンショット。[変更] の右側にあるステージング ボタン (プラス記号) が濃いオレンジ色の枠線で強調表示されています。

    メモ

    GitHub の空のテンプレートから開始した場合、ディレクトリを Git リポジトリとして既に初期化していない限り、変更の一覧は表示されません。 空のテンプレートから作成された codespace を発行するには、[ソース管理] ビューで [GitHub に発行] をクリックし、手順 5 に進みます。

  3. ステージングされた変更をコミットするには、行った変更を説明するコミット メッセージを入力し、 [コミット] をクリックします。

    [ソース管理] サイド バーのスクリーンショット。コミット メッセージと、その下の [コミット] ボタンの両方が、濃いオレンジ色の枠線で強調表示されています。

  4. [ブランチを公開する] をクリックします。

    [ブランチを公開する] ボタンが表示されている [ソース管理] サイド バーのスクリーンショット。

  5. [リポジトリ名] ドロップダウンで、新しいリポジトリの名前を入力し、 [GitHub プライベート リポジトリに発行] または [GitHub パブリック リポジトリに発行] を選びます。

    VS Code でのリポジトリ名ドロップダウンのスクリーンショット。 プライベートまたはパブリック リポジトリに発行するための 2 つのオプションが示されています。

    新しいリポジトリの所有者は、codespace を作成した GitHub アカウントになります。

  6. 必要に応じて、エディターの右下隅に表示されるポップアップで、 [GitHub で開く] をクリックして、GitHub の新しいリポジトリを表示します。

    [GitHub で開く] ボタンが示されている、正常に発行されたリポジトリの確認メッセージのスクリーンショット。

ブランチの作成または切り替え

  1. 現在のブランチがステータス バーに表示されていない場合は、codespace の下部でステータス バーを右クリックし、 [ソース コントロール] を選択します。

  2. ステータスバーでブランチ名をクリックします。

    VS Code のステータス バーに表示されているブランチ名のスクリーンショット。

  3. ドロップダウンで、切り替えるブランチをクリックするか、新しいブランチ名を入力して [新しいブランチの作成] をクリックします。

    VS Code で新しいブランチを作成するためのドロップダウンのスクリーンショット。

ヒント

他のユーザーが最近リモート リポジトリのファイルを変更した場合、切り替え後のブランチでは、その変更を自分の codespace にプルするまで、それらの変更内容が表示されない場合があります。

変更をコミットする

  1. アクティビティ バーで、 [ソース管理] ビューをクリックします。

    [ソース管理] ボタンがオレンジ色の枠線で強調されている VS Code アクティビティ バーのスクリーンショット。

  2. 変更をステージングするには、変更したファイルの横にある をクリックし、複数のファイルを変更してすべてをステージングする場合は [ 変更 ] の横にある [変更] をクリックします。

    [ソース管理] サイド バーのスクリーンショット。[変更] の右側にあるステージング ボタン (プラス記号) が濃いオレンジ色の枠線で強調表示されています。

  3. テキスト ボックスに、行った変更について説明するコミット メッセージを入力します。

    [ソース管理] サイド バーのスクリーンショット。[コミット] ボタンの上にあるテキスト ボックスにコミット メッセージが入力されています。

  4. [コミット] ボタンの右側にある下矢印をクリックし、ドロップダウン メニューから [コミットしてプッシュ] を選びます。

    [コミット] ボタンのドロップダウンのスクリーンショット。 オプション [コミットしてプッシュ] が濃いオレンジ色の枠線で強調表示されています。

リモートリポジトリから変更をプルする

リモートリポジトリからいつでも codespace に変更をプルできます。

  1. アクティビティ バーで、 [ソース管理] ビューをクリックします。

    [ソース管理] ボタンがオレンジ色の枠線で強調されている VS Code アクティビティ バーのスクリーンショット。

  2. サイド バーの上部にある [ ] をクリックします。

    [ソース管理] サイド バーのスクリーンショット。 省略記号ボタン (3 つのドット) が濃いオレンジ色の枠線で強調表示されています。

  3. ドロップダウン メニューの [プル] をクリックします。

codespace の作成後に開発コンテナー構成が変更された場合は、codespace のコンテナーを再構築することで変更を適用できます。 詳しくは、「開発コンテナーの概要」をご覧ください。

Codespace が新しい変更を自動的にフェッチするように設定する

リモートリポジトリに対して行われた新しいコミットの詳細を自動的にフェッチするように codespace を設定できます。 これにより、リポジトリのローカルコピーが古くなっているかどうかを確認できます。古くなっている場合は、新しい変更をプルすることができます。

フェッチ操作でリモートリポジトリの新しい変更が検出されると、ステータスバーに新しいコミットの数が表示されます。 その後、変更をローカルコピーにプルできます。

  1. アクティビティ バーの下部にある [管理] ボタンをクリックします。

    [アクティビティ] バーの下部のスクリーンショット。 [管理] ボタン (歯車記号が付いています) が濃いオレンジ色の枠線で強調表示されています。

  2. メニューで、[設定] をクリックします。

  3. [設定] ページで、次を検索します: autofetch

    [設定] タブのスクリーンショット。検索テキスト「autofetch」が濃いオレンジ色の枠線で強調表示されています。

  4. 現在のリポジトリに登録されているすべてのリモートの更新の詳細をフェッチするには、Git: Autofetchall に設定します。

    [Git: 自動フェッチ] 設定のスクリーンショット。[すべて] に設定されています。

  5. 各自動フェッチ間の秒数を変更する場合は、Git: Autofetch Period の値を編集します。

プル リクエストの作成

  1. 変更をリポジトリのローカル コピーにコミットしたら、[ソース管理] サイド バーの上部にある pull request アイコンをクリックします。

    [ソース管理] サイド バーの上部のスクリーンショット。 pull request アイコンが濃いオレンジ色の枠線で強調表示されています。

  2. マージ元のローカルブランチとリポジトリ、およびマージ先のリモートブランチとリポジトリが正しいことを確認します。 そして、プルリクエストにタイトルと説明を付けます。

    [GitHub pull request] サイド バーと pull request を作成するフォームのスクリーンショット。[タイトル] と [説明] のフィールドが表示されています。

  3. [作成] をクリックします。

リモートリポジトリに変更をプッシュする

保存してコミットした変更をプッシュできます。 それにより、変更がリモートリポジトリの上流ブランチに適用されます。 pull request を作成する準備がまだできていない場合や、 GitHubで pull request を作成する場合は、これを行うことができます。

  1. サイド バーの上部にある [ ] をクリックします。

    [ソース管理] サイド バーのスクリーンショット。 省略記号ボタン (3 つのドット) が濃いオレンジ色の枠線で強調表示されています。

  2. ドロップダウン メニューの [プッシュ] をクリックします。

テンプレートから作成された Codespace の公開

テンプレート リポジトリまたは [コードスペース] ページのテンプレートからコードスペースを作成する場合、コードスペースを発行するまで、その作業は GitHub のリポジトリに格納されません。 詳しくは、「テンプレートから codespace を作成する」をご覧ください。

codespace で作業している場合は、VS Code Web クライアントまたはデスクトップ アプリケーションから発行できます。

  1. アクティビティ バーで、 [ソース管理] ビューをクリックします。

    [ソース管理] ボタンがオレンジ色の枠線で強調されている VS Code アクティビティ バーのスクリーンショット。

  2. 変更をステージするには、追加または変更したファイルの横の [+] をクリックします。複数のファイルを変更してすべてをステージする場合は、[Changes] の横のものをクリックします。

    [ソース管理] サイド バーのスクリーンショット。[変更] の右側にあるステージング ボタン (プラス記号) が濃いオレンジ色の枠線で強調表示されています。

    メモ

    GitHub の空のテンプレートから開始した場合、ディレクトリを Git リポジトリとして既に初期化していない限り、変更の一覧は表示されません。 空のテンプレートから作成された codespace を発行するには、[ソース管理] ビューで [GitHub に発行] をクリックし、手順 5 に進みます。

  3. ステージングされた変更をコミットするには、行った変更を説明するコミット メッセージを入力し、 [コミット] をクリックします。

    [ソース管理] サイド バーのスクリーンショット。コミット メッセージと、その下の [コミット] ボタンの両方が、濃いオレンジ色の枠線で強調表示されています。

  4. [ブランチを公開する] をクリックします。

    [ブランチを公開する] ボタンが表示されている [ソース管理] サイド バーのスクリーンショット。

  5. [リポジトリ名] ドロップダウンで、新しいリポジトリの名前を入力し、 [GitHub プライベート リポジトリに発行] または [GitHub パブリック リポジトリに発行] を選びます。

    VS Code でのリポジトリ名ドロップダウンのスクリーンショット。 プライベートまたはパブリック リポジトリに発行するための 2 つのオプションが示されています。

    新しいリポジトリの所有者は、codespace を作成した GitHub アカウントになります。

  6. 必要に応じて、エディターの右下隅に表示されるポップアップで、 [GitHub で開く] をクリックして、GitHub の新しいリポジトリを表示します。

    [GitHub で開く] ボタンが示されている、正常に発行されたリポジトリの確認メッセージのスクリーンショット。

ブランチの作成または切り替え

  1. 現在のブランチがステータス バーに表示されていない場合は、codespace の下部でステータス バーを右クリックし、 [ソース コントロール] を選択します。

  2. ステータスバーでブランチ名をクリックします。

    VS Code のステータス バーに表示されているブランチ名のスクリーンショット。

  3. ドロップダウンで、切り替えるブランチをクリックするか、新しいブランチ名を入力して [新しいブランチの作成] をクリックします。

    VS Code で新しいブランチを作成するためのドロップダウンのスクリーンショット。

ヒント

他のユーザーが最近リモート リポジトリのファイルを変更した場合、切り替え後のブランチでは、その変更を自分の codespace にプルするまで、それらの変更内容が表示されない場合があります。

変更をコミットする

  1. アクティビティ バーで、 [ソース管理] ビューをクリックします。

    [ソース管理] ボタンがオレンジ色の枠線で強調されている VS Code アクティビティ バーのスクリーンショット。

  2. 変更をステージングするには、変更したファイルの横にある をクリックし、複数のファイルを変更してすべてをステージングする場合は [ 変更 ] の横にある [変更] をクリックします。

    [ソース管理] サイド バーのスクリーンショット。[変更] の右側にあるステージング ボタン (プラス記号) が濃いオレンジ色の枠線で強調表示されています。

  3. テキスト ボックスに、行った変更について説明するコミット メッセージを入力します。

    [ソース管理] サイド バーのスクリーンショット。[コミット] ボタンの上にあるテキスト ボックスにコミット メッセージが入力されています。

  4. [コミット] ボタンの右側にある下矢印をクリックし、ドロップダウン メニューから [コミットしてプッシュ] を選びます。

    [コミット] ボタンのドロップダウンのスクリーンショット。 オプション [コミットしてプッシュ] が濃いオレンジ色の枠線で強調表示されています。

リモートリポジトリから変更をプルする

リモートリポジトリからいつでも codespace に変更をプルできます。

  1. アクティビティ バーで、 [ソース管理] ビューをクリックします。

    [ソース管理] ボタンがオレンジ色の枠線で強調されている VS Code アクティビティ バーのスクリーンショット。

  2. サイド バーの上部にある [ ] をクリックします。

    [ソース管理] サイド バーのスクリーンショット。 省略記号ボタン (3 つのドット) が濃いオレンジ色の枠線で強調表示されています。

  3. ドロップダウン メニューの [プル] をクリックします。

codespace の作成後に開発コンテナー構成が変更された場合は、codespace のコンテナーを再構築することで変更を適用できます。 詳しくは、「開発コンテナーの概要」をご覧ください。

Codespace が新しい変更を自動的にフェッチするように設定する

リモートリポジトリに対して行われた新しいコミットの詳細を自動的にフェッチするように codespace を設定できます。 これにより、リポジトリのローカルコピーが古くなっているかどうかを確認できます。古くなっている場合は、新しい変更をプルすることができます。

フェッチ操作でリモートリポジトリの新しい変更が検出されると、ステータスバーに新しいコミットの数が表示されます。 その後、変更をローカルコピーにプルできます。

  1. アクティビティ バーの下部にある [管理] ボタンをクリックします。

    [アクティビティ] バーの下部のスクリーンショット。 [管理] ボタン (歯車記号が付いています) が濃いオレンジ色の枠線で強調表示されています。

  2. メニューで、[設定] をクリックします。

  3. [設定] ページで、次を検索します: autofetch

    [設定] タブのスクリーンショット。検索テキスト「autofetch」が濃いオレンジ色の枠線で強調表示されています。

  4. 現在のリポジトリに登録されているすべてのリモートの更新の詳細をフェッチするには、Git: Autofetchall に設定します。

    [Git: 自動フェッチ] 設定のスクリーンショット。[すべて] に設定されています。

  5. 各自動フェッチ間の秒数を変更する場合は、Git: Autofetch Period の値を編集します。

プル リクエストの作成

  1. 変更をリポジトリのローカル コピーにコミットしたら、[ソース管理] サイド バーの上部にある pull request アイコンをクリックします。

    [ソース管理] サイド バーの上部のスクリーンショット。 pull request アイコンが濃いオレンジ色の枠線で強調表示されています。

  2. マージ元のローカルブランチとリポジトリ、およびマージ先のリモートブランチとリポジトリが正しいことを確認します。 そして、プルリクエストにタイトルと説明を付けます。

    [GitHub pull request] サイド バーと pull request を作成するフォームのスクリーンショット。[タイトル] と [説明] のフィールドが表示されています。

  3. [作成] をクリックします。

リモートリポジトリに変更をプッシュする

保存してコミットした変更をプッシュできます。 それにより、変更がリモートリポジトリの上流ブランチに適用されます。 pull request を作成する準備がまだできていない場合や、 GitHubで pull request を作成する場合は、これを行うことができます。

  1. サイド バーの上部にある [ ] をクリックします。

    [ソース管理] サイド バーのスクリーンショット。 省略記号ボタン (3 つのドット) が濃いオレンジ色の枠線で強調表示されています。

  2. ドロップダウン メニューの [プッシュ] をクリックします。