Visual Studio で Git コミットを行う

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

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

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

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

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

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

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

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

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

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

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

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

Visual Studio 2022 でのファイル バージョンの行ごとの比較。

バージョン 17.6 の新機能:「#」と入力するか、コミット メッセージ テキスト ボックスの右下にある # ボタンを選択して、issue または pull request を参照することもできます。 詳細については、issue と pull requests の参照に関するブログ投稿を参照してください。

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

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

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

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

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

Note

AI で生成されたコミット メッセージを有効にするには、GitHub Copilot と GitHub Copilot Chat が必要です。 Visual Studio バージョン 17.10 Preview 3 以降を使用している場合、「GitHub Copilot for Visual Studio 2022 バージョン 17.10 Preview 3 以降を取得する」を参照してください。

Visual Studio バージョン 17.9 以前を使用している場合、「GitHub Copilot for Visual Studio 2022 バージョン 17.8 - 17.9 を取得する」を参照してください。

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

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

Note

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