Visual Studio で Git コミットを行う

Git ワークフローの中核となる部分は、ファイルの変更とそれらのファイルの変更のコミットです。 この記事では GitHub リポジトリを参照していますが、GitHub や Azure DevOps など、自分で選択した Git プロバイダーでリモートで作業することもできます。 または、プロバイダーをまったく使用せずにローカルで作業することもできます。

Git により、作業中のリポジトリ内のファイルの変更が追跡され、リポジトリ内のファイルが 3 つのカテゴリに分割されます。 これらの変更は、コマンド ラインで git status コマンドを入力したときに表示されるものと同じです。

  • 未変更のファイル: これらのファイルは、最後のコミットから変更されていません。
  • 変更されたファイル: これらのファイルには最後のコミットからの変更が含まれていますが、まだ次回のコミット用にステージされていません。
  • ステージされたファイル: これらのファイルには、次のコミットに追加される変更が含まれています。

作業を行っている間、Visual Studio により、 [Git Changes](Git 変更) ウィンドウの [変更] セクションで、プロジェクトに対するファイルの変更が追跡されます。

Visual Studio の [Git の変更] ウィンドウを示すスクリーンショット。

Visual Studio 2022 の [Git 変更] ウィンドウ。

変更をステージングしてコミットする

変更をステージする準備ができたら、ステージングする各ファイルの [+] (プラス) ボタンをクリックするか、ファイルを右クリックして [ステージ] を選択します。 + 上部にある「Changes」セクションの「すべてをステージ (プラス)」ボタンを使用すると、変更したすべてのファイルを一度でステージすることもできます。

変更をステージすると、Visual Studio によって [ステージされている変更] セクションが作成されます。 [ステージされている変更] セクションの変更のみが次のコミットに追加されます。これを行うには、[ステージ済みをコミット] を選択します。 このアクションの同等のコマンドは、git commit -m "Your commit message" です。

Visual Studio の [Git コミット] ダイアログを示すスクリーンショット。

Visual Studio 2022 の Git コミット ダイアログ。

[–] (マイナス) ボタンをクリックして、変更をステージング解除することもできます。 このアクションの同等のコマンドは、1 つのファイルをステージ解除する git reset <file_path>、またはディレクトリ内のすべてのファイルをステージング解除する git reset <directory_path> です。

ステージ領域をスキップして、変更されたファイルをステージしないように選択することもできます。 この場合、Visual Studio を使用すると、変更をステージせずに直接コミットできます。 コミット メッセージを入力し、[すべてコミット] を選択します。 このアクションの同等のコマンドは、git commit -a です。

また、Visual Studio では、[すべてをコミットしてプッシュ][すべてをコミットして同期] を使用して、コミットと同期をワンクリックで簡単に行えます。 [変更] セクションと [ステージされている変更] セクションのいずれかのファイルをダブルクリックすると、変更されていないバージョンのファイルとの行ごとの比較を確認できます。 「ファイルの比較 - 差分ビュー」を参照してください。

ファイル間で変更された行を確認する

保留中のコミットのスコープをすばやく理解するには、[Git の変更] ウィンドウで [変更の概要を開く] を選択します。 Visual Studioは、1 つの統合ビューで複数のファイルから変更された行を表示するため、コミットする前に変更をトリアージできます。

Git 変更ツール バーの [変更の概要を開く] を示すスクリーンショット。

概要を開くと、Visual Studio では複数のファイルの変更された行が 1 つのビューに表示されます。

統合された概要ビューの複数のファイルから変更された行を示すスクリーンショット。

Visual Studio 2022 でのファイル バージョンの 1 行ずつの比較。

Visual Studio でのファイル バージョンの行ごとの比較を示すスクリーンショット。

#入力するか、コミット メッセージ テキスト ボックスの右下にある [#] ボタンを選択して、問題や pull request を参照することもできます。 詳細については、Issues および Pull Requests に関するリファレンスブログ投稿をご覧ください。

ファイルの名前を変更すると、[ Git の変更 ] ウィンドウの上部に、ファイルの名前が変更されたことを通知する通知バーが表示され、その変更をステージングするように求められます。 この通知は、何かをステージングまたはコミットする前に表示されます。 他の変更を行う前に変更をステージングしてコミットし、新しいファイルの削除や追加ではなく、変更が名前変更として確実に検出されるようにすることができます。

Copilot Chat を使用してローカルの変更を確認する

GitHub Copilot をインストールすると、コードの変更をコミットする前にGitHub Copilot確認できます。

この機能を有効にするには、[ツール>オプション] ウィンドウを開き>] セクションを展開し、[Pull Request Comments]\(プル要求コメント\) チェック ボックスをオンにします。 [>>>] セクションを展開し、[Git プレビュー機能を有効にする] チェックボックスをオンにします。

この機能を有効にするには、[ ツール>オプション ] ダイアログを開き、[ 環境>プレビュー機能 ] セクションを展開し、[Pull Request Comments]\( プル要求コメント \) チェック ボックスをオンにします。 GitHub>Copilot>Source Control Integration セクションを展開し、[Git プレビュー機能を有効にする] チェック ボックスをオンにします。 [OK] を選択.

[Git 変更] ウィンドウで、[Copilot を使用して変更を確認する] ボタンをクリックします。これは、キラキラしたコメント アイコンのように見えます。

しばらくすると、コード レビューのコメントの数を示すリンクが Git Changes ウィンドウに表示され、クリックしてコメントを表示および移動できます。 問題が検出されない場合、メッセージ 「Copilotはファイルにコメントしませんでした」 が表示されます。

[変更の確認] ボタンが表示された [Git の変更] ウィンドウを示すスクリーンショット。

コード レビューのフィードバックはコメントとして表示され、潜在的な問題の簡単な概要が表示されます。変更を行うか、コメント ボックスの右上にある上矢印ボタンを使用してコメント ボックスを閉じます。

GitHub コード レビュー コメントを示すスクリーンショット。

すべてのコメントを削除するには、[Git の変更] ウィンドウで X を使用して、Copilot コード レビュー リンクを閉じます。

Git の [変更] ウィンドウには、すべての Copilot レビュー コメントの一覧もファイル別に表示されます。 リスト内の任意のコメントをダブルクリックすると、エディター内の対応するコードと共にインラインにあるそのコメントに直接移動できます。

[Git の変更] ウィンドウの各ファイルのコード レビュー コメントを示すスクリーンショット。

[Git 変更] ウィンドウで、[Copilot を使用して変更を確認する] ボタンをクリックします。これは、キラキラしたコメント アイコンのように見えます。

しばらくすると、コード レビューのコメントの数を示すリンクが Git Changes ウィンドウに表示され、クリックしてコメントを表示および移動できます。 問題が検出されない場合、メッセージ 「Copilotはファイルにコメントしませんでした」 が表示されます。

[変更の確認] ボタンが表示された [Git の変更] ウィンドウを示すスクリーンショット。

コード レビューのフィードバックはコメントとして表示され、潜在的な問題の簡単な概要が表示されます。変更を行うか、コメント ボックスの右上にある上矢印ボタンを使用してコメント ボックスを閉じます。

GitHub コード レビュー コメントを示すスクリーンショット。

すべてのコメントを削除するには、[Git の変更] ウィンドウで X を使用して、Copilot コード レビュー リンクを閉じます。

ローカル コード レビューから提案を適用する

GitHub Copilot では、ローカル コード レビュー エクスペリエンスからのコメントに基づいてコード編集を提案することもできます。これは、フィードバックを解決し、変更をより迅速にコミットできる状態にするのに役立ちます。 Copilot がローカルの変更を確認し、コメントを残した後、コメントからアクション可能なコード提案を直接要求できます。 提案された変更はインライン差分ビューに表示され、元のコード、提案された編集、および周囲のコンテキストを確認し、コミットする前に修正を変更してテストできます。

Visual Studio でローカル コード レビューから Copilot コードの提案を適用する方法を示すスクリーンショット。

この機能を使用するには、次の機能フラグの両方を有効にします。

  • [ツール]>[オプション]>[プレビュー機能]>[プル リクエスト コメント]
  • ツール>>>>>

エディターで pull request コメント からコード候補を適用することもできます。

コミットを元に戻す、リセットする、または修正する

コミットをダブルクリックすると、Visual Studio によってその詳細が別のツール ウィンドウに表示されます。 ここからコミットを元に戻したり、コミットをリセットしたり (undo)、コミット メッセージを修正したり、コミット時にタグを作成したりできます。 コミット時に変更されたファイルをクリックすると、Visual Studio によって、コミットとその親の [差分] ビューが並べて表示されます。

Visual Studio の [コミットの詳細] ダイアログを示すスクリーンショット。

Visual Studio 2022 の [コミットの詳細] ダイアログ。

GitHub Copilot チャットを使用してコミット メッセージを生成する

Visual StudioとGitHub Copilotを使用すると、AI を使用して、変更を説明する詳細なコミット メッセージを生成できます。

注意

AI で生成されたコミット メッセージを有効にするには、GitHub Copilot と GitHub Copilot Chat が必要です。 開始するには、 GitHub Copilot のインストールと状態の管理に関するページを参照してください。

AI で生成されたコミット メッセージを示すスクリーンショット。

コミットの準備ができたら、コミット メッセージ テキスト ボックスの右下にある sparkly ペン アイコン (ヒント: AI によって生成されたコミット メッセージを追加) を使用して、AI によって生成されたコミット メッセージを要求します。 AI 生成テキストが生成され、既にあるメッセージに追加されます。 よく読み、正確かどうかを確認します。 挿入を受け入れるか、廃棄するか選択することができます。 挿入を決定した場合は、テキストを送信する前に編集できます。 準備が整ったら、[ステージング済みをコミット] ボタンを選択するか、コミット メッセージ編集ボックスの下のドロップダウンで使用できる他のコミット オプションのいずれかを選択します。

GitHub Copilot チャットを使用してコミット メッセージを生成する

Visual Studio バージョン 17.9 以降と GitHub Copilot 拡張機能を使用すると、AI を使用して、変更を説明する詳細なコミット メッセージを生成できます。

注意

AI で生成されたコミット メッセージを有効にするには、GitHub Copilot と GitHub Copilot Chat が必要です。 開始するには、 GitHub Copilot for Visual Studio 2022 の入手に関するページを参照してください。

AI で生成されたコミット メッセージを示すスクリーンショット。

コミットの準備ができたら、コミット メッセージ テキスト ボックスの右下にある sparkly ペン アイコン (ヒント: AI によって生成されたコミット メッセージを追加) を使用して、AI によって生成されたコミット メッセージを要求します。 AI 生成テキストが生成され、既にあるメッセージに追加されます。 よく読み、正確かどうかを確認します。 挿入を受け入れるか、廃棄するか選択することができます。 挿入を決定した場合は、テキストを送信する前に編集できます。 準備が整ったら、[ステージング済みをコミット] ボタンを選択するか、コミット メッセージ編集ボックスの下のドロップダウンで使用できる他のコミット オプションのいずれかを選択します。

GitHub>Copilot>Source Control IntegrationCommit message custom instructions テキスト ボックスを使用して Copilot が生成するコミット メッセージを調整していた場合、その設定は適用されなくなりました。

今後は、リポジトリのCopilot命令ファイルでコミット メッセージ命令を管理します。 このセットアップでは、コミット メッセージガイダンスは他のCopilotカスタム命令と同じ場所に保持されます。

カスタム手順を設定する

コミット メッセージの指示をリポジトリのCopilot命令ファイルに追加します。 セットアップ手順については、「 リポジトリの追加手順」を参照してください。

コミット メッセージ ルールを含むCopilot命令ファイルを示すスクリーンショット。

Visual Studio 2022 では、GitHub Copilotのプロンプトで追加のガイダンスを提供することで、コミット メッセージ形式をグローバルにカスタマイズできます。

カスタム プロンプトの指示を追加するには、[ ツール>オプション ] ダイアログを開き、 GitHub>Copilot セクションを展開します。 [ ソース管理統合 ] グループで、[ メッセージのコミット] カスタム指示 ボックスにプロンプト テキストへの追加を入力し、[ OK] を選択します。 変更はすべてのコミット メッセージに影響します。 このプロンプト ガイダンスを用意することで、チームはコミット メッセージ形式を標準化できます。

コミット メッセージのカスタム プロンプトが表示された [ツール オプション] GitHub Copilot 設定ページを示すスクリーンショット。

GitHub Copilot は、"subject" (コミット メッセージの最初の行)、"body" (変更について詳しく説明するセクション)、"footer" (最後のセクション) などの用語を理解します。 たとえば、"すべて小文字を使用する"、"50 文字に制限する"、"本文を 2 つの文に制限する"、"3 つのハッシュ マークを持つフッターを追加する"、または広く使用されている 従来のコミット 標準を参照する "従来のコミット標準に従う" などがあります。

注意

GitHub Copilot がデータのプライバシーをどのように保護しているかについては、GitHub Copilot Business のプライバシーに関する声明」をお読みください。