Git リポジトリを参照して Visual Studio のブランチを比較する
[Git 変更] ウィンドウでは、コーディング中にコードから切り替えることなく、Git とシームレスにやり取りすることができます。 しかし、Git リポジトリに重点を置いた方が理にかなっている場合もあります。 たとえば、自分のチームが取り組み続けていることを詳しく確認したり、2 つのコミットを比較してバグを調査したりすることが必要になる場合があります。
GitHub や Azure DevOps など、自分で選択した Git プロバイダーを使用してリモートで作業することができます。
ローカルおよびリモートのブランチを参照する
作業を始めるには、[表示] メニューの [Git リポジトリ] を選んで (または、Ctrl+0、Ctrl+R キーボード ショートカットを使って)、[Git リポジトリ] ウィンドウを開きます。 [Git 変更] ウィンドウとステータス バーにある出力方向/入力方向リンクを選択して [Git リポジトリ] ウィンドウにアクセスすることもできます。
[Git リポジトリ] ウィンドウには、前のスクリーンショットに示すように 3 つのメイン セクションがあります。
ブランチ: Git を使用すると、ユーザーはブランチを介してマルチタスクを実行したり自分のコードを試したりできます。 同時に複数の機能に取り組む場合、または作業中のコードに影響を与えることなくアイデアを探索したい場合には、分岐が役立つことがあります。
グラフ: このセクションでは、ブランチの状態を視覚化できます。 3 つのサブセクションがあります。
- [Incoming]\(入力方向\) には、自分のチームが貢献している入力方向のコミットが表示されます。
- [Outgoing]\(出力方向\) には、まだプッシュしていないローカル コミットが表示されます。
- [ローカル履歴] には、ローカル リポジトリで追跡された残りのコミットが表示されます。
コミット: [グラフ] セクションで任意のコミットを選択すると、その詳細が表示されます。 コミットによって導入された変更を確認するには、それらを選択することで、差異が表示されます。 たとえば、前のスクリーンショットでは、ある 1 つのコミットで Resize.cs ファイルに導入された変更が表示されています。
Alt+上方向キーまたは Alt+下方向キーのボード ショートカットを使って、これらのセクション間を移動できます。
ブランチを切り替えなくても、ローカルまたはリモートのブランチを参照できます。 焦点を当てたいコミットが見つかったら、[新しいタブで開く] ボタンを選択して別のタブでそのコミットを開きます。
ヒント
コミットを全画面に表示するには、使用している [コミット] タブをデタッチし、[最大化] ボタンを使用して [コミット] ウィンドウを最大化します。 [Diff Configuration]\(差分構成\) (歯車のアイコン) を選択して、お気に入りの差分構成を選択することもできます。
複数分岐グラフ ビュー
新バージョン 17.7: Git Repo ウィンドウを開くと、単一分岐 ビューから開始します。 その後、任意のブランチを選択して、ブランチとそのコミットの両方をマルチブランチ グラフ ビューに追加できます。これにより、複数のブランチとの対話をより効率的にする視覚的な手掛かりが追加されます。
ローカル履歴 ビューの左側には、線の色分けと分岐ラベルの 両方があり、各ブランチに属するコミットを簡単にトレースできます。 テーブルの上部にある分岐の一覧を使用すると、分岐間をより簡単にスクロールし、グラフに表示される分岐をすぐに把握できます。
コミットを比較する
ブランチ内の任意の 2 つのコミットを比較するには、Ctrl キーを使用して、比較する 2 つのコミットを選択します。 次に、そのうちの 1 つを右クリックし、[コミットの比較] を選択します。
ヒント
[コミットの詳細] と同様に、[新しいタブで開く] ボタンを使用して別のタブで比較を開くことも、それを画面で最大化することもできます。
コミットからブランチを作成する
Visual Studio では、[Git Repository] ウィンドウの [Git Graph] ペインを使用して、以前のコミットからブランチを作成できます。 これを行うには、新しいブランチを作成するコミットを右クリックして、[新しいブランチ] を選択します。
Note
このアクションの同等のコマンドは、git branch <branchname> [<commit-id>]
です。
ブランチを比較する
ブランチを比較すると、2 つのブランチの違いの概要が示されます。これは、プル要求の作成、マージ、またはブランチの削除を行う前に役立つ場合があります。
Visual Studio を使用して現在チェックアウトされているブランチと他のブランチを比較するには、ステータス バーでホストされているブランチ ピッカーと Git の変更ツール ウィンドウを利用し、比較対象のローカルまたはリモートのブランチを選択します。 対象のブランチを右クリックし、[Compare with Current Branch] (現在のブランチと比較する) を選びます。 または、Git リポジトリ ウィンドウのブランチ リストを利用して、同じコマンドにアクセスすることもできます。
[現在のブランチと比較する] を選択すると、ブランチの比較エクスペリエンスが開きます。ここでは、[変更] リストに移動して、比較するファイルを選択できます。
ヒント
インライン差分の方がよい場合は、[差分構成のオプション] の歯車アイコンを使って、インライン差分ビューに切り替えることができます。
コミットのチェックアウト
コミットをチェックアウトすることは、さまざまな意味で有益です。 たとえば、リポジトリの履歴の前の時点に戻り、コードを実行したりテストしたりすることができます。 また、リモート ブランチ (同僚のブランチなど) からコードを確認する場合にも役立ちます。 この方法では、貢献することを計画していない場合、ローカル ブランチを作成する必要はありません。 この場合は、確認するリモート ブランチの先端だけをチェックアウトすることができます。
Visual Studio で以前のコミットをチェックアウトするには、[Git リポジトリ] ウィンドウを開き、戻りたいコミットを右クリックして、[チェックアウト (–detach)] を選択します。 コミットをチェックアウトすることで、デタッチされた HEAD 状態になることを示す確認ダイアログが、Visual Studio に表示されます。 つまり、リポジトリの HEAD が、ブランチではなく、コミットを直接ポイントすることを意味します。
デタッチされたヘッド状態になったので、コードを自由に実行してテストしたり、変更を調査してコミットしたりすることもできます。 探索が終わってブランチに戻る場合は、既存のブランチをチェックアウトして変更を破棄するか、最初に新しいブランチを作成して変更を保持することを選択できます。
重要
デタッチされたヘッド状態で作成されたコミットは、どのブランチにも関連付けられておらず、ブランチをチェックアウトした後、Git によってガベージ コレクションされる可能性があります。 このため、変更を保持するには、ブランチをチェックアウトする前に新しいブランチを作成することをお勧めします。 たとえば、新しいブランチを作成せずに、メインをチェックアウトすると、コミット C5 と C6 がガベージ コレクションされます。
デタッチされたヘッド状態について詳しくは、Git のドキュメント「デタッチされたヘッド」をご覧ください。
リモート ブランチの先端をチェックアウトすると、プル要求をすばやく確認し、最新の更新プログラムを評価するのに役立ちます。 Visual Studio でこれを行うには、必ず最初にリモート リポジトリから最新の更新をフェッチして取得してください。 次に、確認するリモート ブランチを右クリックして、[先頭のコミットをチェックアウト] を選びます。