Visual Studio は、広く使用されている最新のバージョン管理システムである Git のユーザー インターフェイスを提供します。 ソース コードが GitHub リポジトリ、Azure DevOps、または別の Git プロバイダーでホストされているかどうかに関係なく、Visual Studio IDE 内ですべての一般的なバージョン管理タスクを実行できます。 または、プロバイダーをまったく使用せずにローカルで作業し、プロバイダーに接続する準備ができたときに後でソースをバックアップするオプションを使用することもできます。
作業するソース コードは、Visual Studio で作成されたものである必要はありません。 Visual Studio プロジェクト ファイルがあるかどうかに関係なく、任意の Git リポジトリ内の任意のソース フォルダーを操作できます。
Visual Studio で Git と GitHub の使用を開始する
Visual Studio で Git の使用を開始するには:
GitHub などの Git プロバイダーでホストされている Git リポジトリがある場合は、 リポジトリをローカル コンピューターに複製します 。
それ以外の場合は、 新しい Git リポジトリを簡単に作成し、コードを追加できます。 Git プロバイダーをまだお持ちでない場合は、Visual Studio の Git エクスペリエンスがこのプロバイダー用に最適化されているため、GitHub から始めることをお勧めします。 GitHubは、コードを保存し、どこからでもどこからでもアクセスできる、安全で安全なクラウドコードストレージを提供しています。
GitHub アカウントと GitHub Enterprise アカウントの両方をキーチェーンに追加できるだけでなく、Microsoft アカウントの場合と同様に活用することもできます。 GitHub アカウントをお持ちでない場合は、次の手順に従って、 Visual Studio で使用する GitHub アカウントを作成し てください。 また、Visual Studio 17.12 以降では、複数の GitHub アカウントを追加し、必要に応じてそれらを切り替えることができます。 「 Visual Studio キーチェーンに GitHub アカウントを追加する」を参照してください。
コマンドラインで git コマンドを使用する場合は、 Git for Windows (Microsoft 製品ではない) もインストールする必要があります。
ソリューション エクスプローラーでファイルを表示する
リポジトリを複製するか、ローカル リポジトリを開くと、Visual Studio は Git コンテキストに切り替わります。 ソリューション エクスプローラーは、Git リポジトリのルートにフォルダーを読み込み、ディレクトリ ツリーをスキャンして、 CMakeLists.txt
ファイルや .sln
ファイル拡張子を持つファイルなどの表示可能なファイルを探します。 詳細については、「 ソリューション エクスプローラーでファイルを表示する」を参照してください。
ブランチとリモートリポジトリ
ブランチを使用すると、関連する変更を、作業中の関連のない変更から分離しておくことができます。 推奨される Git ワークフローでは、作業するすべての機能または修正プログラムに新しいブランチを使用します。 Visual Studio から ブランチを作成する 方法について説明します。
新しいブランチを作成して切り替えると、既存のファイルを変更するか、新しいファイルを追加してからリポジトリに作業をコミットすることで、作業を開始できます。 Visual Studio でのコミットの作成の詳細と、Git でのファイルの状態について理解を深めるには、「 コミットの作成 」ページを参照してください。
Git は分散バージョン管理システムであるため、これまでに行われたすべての変更はローカルのみの変更です。 これらの変更をリモートリポジトリにコントリビュートするには、 それらのローカルコミットをリモートにプッシュする必要があります。
チームで作業している場合、または異なるマシンを使用している場合は、リモートリポジトリで新しい変更をフェッチしてプルする必要が頻繁にあるかもしれません。 Visual Studio での Git ネットワーク操作の管理の詳細については 、フェッチ、プル、プッシュ、同期 のページを参照してください。
リポジトリの管理とコラボレーション
ただし、Git リポジトリに焦点を当てる方が理にかなっている場合もあります。 たとえば、チームが何に取り組んでいるかをよく把握したり、別のブランチからコミットをコピーしたり、送信コミットをクリーンアップしたりする必要があるかもしれません。 Visual Studio には、強力な リポジトリ参照 機能とコラボレーション機能が含まれているため、他のツールを使用する必要がありません。
Git リポジトリに集中できるように、Visual Studio には Git リポジトリ ウィンドウがあり、ローカルおよびリモートのブランチやコミット履歴など、リポジトリ内のすべての詳細が統合表示されます。 このウィンドウには、メニューバーの Git または View から直接アクセスするか、ステータスバーからアクセスできます。
Git リポジトリの参照と管理
Visual Studio の [Git リポジトリ] ウィンドウを使用して Git リポジトリを参照および管理する方法の詳細については、次のページを参照してください。
マージ競合の処理
マージ中に競合が発生するのは、2 人の開発者がファイル内の同じ行を変更し、Git がどちらが正しいかを自動的に認識しない場合です。 Git はマージを停止し、競合状態にあることを通知します。 詳細については、「 マージ競合の解決 」ページを参照してください。
Git 設定をパーソナライズする
Git 設定をリポジトリ レベルおよびグローバル レベルでパーソナライズするには:
メニュー バーの Git>Settings または Tools>Options>Source Control>Git Global Settings に移動します。
必要な オプションを選択します 。
生産性の向上
Visual Studio 2022 バージョン 17.12 では、コードの任意のセクションを選択し、右クリックして Git サブメニューを展開し、[ GitHub Permalink のコピー ] (または [AzureDevOps Permalinkのコピー]) を選択して GitHub Permalink または Azure DevOps Permalink を生成し、クリップボードにコピーできます。 そこから、リンクが使用されている可能性のある場所、つまりブラウザに貼り付けたり、メール、チャットセッション、ドキュメントで共有したりできます。 Git リポジトリ ウィンドウの埋め込みコミット詳細ビュー内でも同じ操作を行うことができます。 この機能を使用すると、ブランチを切り替えることなく、以前のコミットから特定のコードを参照できます。 Git ホスティング プロバイダー、GitHub、または Azure DevOps のアカウントで Visual Studio にサインイン する必要があります。
Visual Studio 2022 バージョン 17.6 では、GitHub の問題と Azure DevOps 作業項目を検索してリンクできます。 「生産性を向上させるための Git 機能」のブログ記事を参照してください。
Git が Visual Studio 2019 の既定のバージョン管理エクスペリエンスになりました。 バージョン 16.6 以降、機能セットの構築と、フィードバックに基づくイテレーションに取り組んできました。 バージョン 16.8 では、すべてのユーザーの既定のバージョン管理エクスペリエンスになりました。
注
Visual Studio 2022 でも、Git 機能セットの構築と反復作業を続けています。 最近の機能更新プログラムの詳細については、 Visual Studio のマルチリポジトリのサポート に関するブログ記事を参照してください。
Git の詳細
Gitは最も広く使用されている最新のバージョン管理システムであるため、プロの開発者であろうと、コーディング方法を学んでいる場合でも、Gitは非常に便利です。 Git を初めて使用する場合は、https://git-scm.com/ Web サイトを開始することをお勧めします。 そこには、チートシート、人気のオンラインブック、Git Basicsのビデオがあります。
Visual Studio 2019 で Git の使用を開始する
Visual Studio で新しい Git エクスペリエンスを使用する方法について説明しますが、最初にクイック ツアーを開始する場合は、次のビデオをご覧ください。
ビデオの長さ: 5.27 分
生産性を高めるために Visual Studio で Git の使用を開始するには、次の 3 つの方法があります。
- 新しい Git リポジトリを作成します。 Git に関連付けられていないコードがすでにある場合は、新しい Git リポジトリを作成することから始めることができます。
- 既存の Git リポジトリをクローンします。 作業するコードがマシン上にない場合は、既存のリモート リポジトリをクローンできます。
- 既存の Git リポジトリを開きます。 コードが既にコンピューター上にある場合は、 File>Open>Project/Solution (または Folder) を使用して開くと、Visual Studio で初期化された Git リポジトリがあるかどうかが自動的に検出されます。
注
Visual Studio 2019 バージョン 16.8 以降では、完全に統合された GitHub アカウント エクスペリエンスが含まれています。 これで、GitHub アカウントと GitHub Enterprise アカウントの両方をキーチェーンに追加できるようになりました。 Microsoft アカウントと同じように追加して活用できるため、Visual Studio 全体で GitHub リソースに簡単にアクセスできるようになります。 詳細については、「 Visual Studio での GitHub アカウントの操作 」ページを参照してください。
ヒント
GitHub アカウントをお持ちでない場合は、「 Visual Studio で使用する GitHub アカウントの作成 」ページで説明されている手順に従って開始できます。
Visual Studio 2019 で新しい Git リポジトリを作成する
コードが Git に関連付けられていない場合は、新しい Git リポジトリを作成することから始めることができます。 これを行うには、メニュー バーから [Git>Create Git リポジトリ ] を選択します。 次に、[ Git リポジトリの作成 ] ダイアログ ボックスで、情報を入力します。
[Git リポジトリの作成] ダイアログ ボックスを使用すると、新しいリポジトリを GitHub に簡単にプッシュできます。 デフォルトでは、新しいリポジトリはプライベートであり、アクセスできるのは自分だけです。 このボックスのチェックを外すと、リポジトリは公開され、GitHub 上の誰でもリポジトリを表示できるようになります。
ヒント
リポジトリがパブリックかプライベートかに関係なく、チームで作業していなくても、コードのリモートバックアップをGitHubに安全に保存しておくのが最善です。 これにより、使用しているコンピューターに関係なく、コードを利用できるようになります。
ローカルのみの Git リポジトリを作成するには、 [ローカルのみ ] オプションを使用します。 または、 既存のリモート オプションを使用して、ローカル プロジェクトを Azure DevOps またはその他の Git プロバイダー上の既存の空のリモート リポジトリにリンクできます。
Visual Studio 2019 で既存の Git リポジトリを複製する
Visual Studio には、簡単なクローン エクスペリエンスが含まれています。 複製するリポジトリの URL がわかっている場合は、その URL を [リポジトリの場所] セクションに貼り付けて、Visual Studio の複製先のディスクの場所を選択できます。
リポジトリの URL がわからない場合、Visual Studio を使用すると、既存の GitHub または Azure DevOps リポジトリを簡単に参照して複製できます。
Visual Studio 2019 で既存のローカル リポジトリを開く
リポジトリを複製または作成すると、Visual Studio によって Git リポジトリが検出され、Git メニューの [ローカル リポジトリ ] の一覧に追加されます。
ここから、Git リポジトリにすばやくアクセスして切り替えることができます。
Visual Studio 2019 のソリューション エクスプローラーでファイルを表示する
リポジトリを複製したり、ローカル リポジトリを開いたりすると、Visual Studio は以前に開いたソリューションとプロジェクトを保存して閉じることで、その Git コンテキストに切り替えます。 ソリューション エクスプローラーは、Git リポジトリのルートにあるフォルダーを読み込み、ディレクトリ ツリーで表示可能なファイルをスキャンします。 これには、CMakeLists.txt などのファイルや、ファイル拡張子が .sln のファイルが含まれます。
Visual Studio では、ソリューション エクスプローラーで読み込むファイルに基づいてビューが調整されます。
- 1 つの
.sln
ファイルを含むリポジトリをクローンすると、ソリューション エクスプローラーによってそのソリューションが直接読み込まれます。 - ソリューション エクスプローラーがリポジトリ内の
.sln
ファイルを検出しない場合、既定ではフォルダー ビューが読み込まれます。 - リポジトリに複数の
.sln
ファイルがある場合、ソリューション エクスプローラーには、選択可能なビューの一覧が表示されます。
現在開いているビューとビューの一覧を切り替えるには、ソリューション エクスプローラー ツール バーの [ビューの切り替え] ボタンを使用します。
詳細については、「リポジトリからプロジェクトを開く」チュートリアルの「ソリューション エクスプローラーでファイルを表示する」セクションを参照してください。
Visual Studio 2019 の Git 変更ウィンドウ
Git により、作業中のリポジトリ内のファイルの変更が追跡され、リポジトリ内のファイルが 3 つのカテゴリに分割されます。 これらの変更は、コマンド ラインで git status
コマンドを入力したときに表示されるものと同じです。
- 未変更のファイル: これらのファイルは、最後のコミットから変更されていません。
- 変更されたファイル: これらのファイルには最後のコミットからの変更が含まれていますが、まだ次回のコミット用にステージされていません。
- ステージされたファイル: これらのファイルには、次のコミットに追加される変更が含まれています。
作業を行っている間、Visual Studio により、 [Git Changes](Git 変更) ウィンドウの [変更] セクションで、プロジェクトに対するファイルの変更が追跡されます。
変更をステージングする準備ができたら、ステージングする各ファイルの + (プラス) ボタンをクリックするか、ファイルを右クリックして [ステージング] を選択します。 + セクションの上部にある、すべての [] (プラス) ボタンを使用して、変更したすべてのファイルをワンクリックでステージすることもできます。
変更をステージすると、Visual Studio によって [ステージされている変更] セクションが作成されます。
[ステージされている変更] セクションの変更のみが次のコミットに追加されます。これを行うには、[ステージ済みをコミット] を選択します。 このアクションの同等のコマンドは、git commit -m "Your commit message"
です。
[–] (マイナス) ボタンをクリックして、変更をステージング解除することもできます。 このアクションの同等のコマンドは、1 つのファイルをステージ解除する git reset <file_path>
、またはディレクトリ内のすべてのファイルをステージング解除する git reset <directory_path>
です。
ステージ領域をスキップして、変更されたファイルをステージしないように選択することもできます。 この場合、Visual Studio を使用すると、変更をステージせずに直接コミットできます。 コミット メッセージを入力し、[すべてコミット] を選択します。 このアクションの同等のコマンドは、git commit -a
です。
また、Visual Studio では、[すべてをコミットしてプッシュ] と [すべてをコミットして同期] を使用して、コミットと同期をワンクリックで簡単に行えます。 [変更] セクションと [ステージされている変更] セクションのいずれかのファイルをダブルクリックすると、変更されていないバージョンのファイルとの行ごとの比較を確認できます。
ヒント
Azure DevOps リポジトリに接続している場合は、"#" 文字を使用して、Azure DevOps 作業項目をコミットに関連付けることができます。 Azure DevOps リポジトリは、 Team Explorer>Manage Connections を使用して接続できます。
Visual Studio 2019 で既存のブランチを選択する
Visual Studio では、 Git 変更 ウィンドウの上部にあるセレクターに現在のブランチが表示されます。
現在のブランチは、Visual Studio IDE の右下隅にあるステータス バーでも使用できます。
どちらの場所からも、既存のブランチを切り替えることができます。
Visual Studio 2019 で新しいブランチを作成する
新しいブランチを作成することもできます。 このアクションの同等のコマンドは、git checkout -b <branchname>
です。
新しいブランチの作成は、ブランチ名を入力し、既存のブランチに基づいて作成するだけです。
既存のローカルブランチまたはリモートブランチをベースとして選択できます。
[ブランチのチェックアウト] チェックボックスをオンにすると、新しく作成されたブランチに自動的に切り替わります。 このアクションの同等のコマンドは、git checkout -b <new-branch><existing-branch>
です。
Visual Studio 2019 の Git リポジトリ ウィンドウ
Visual Studio には新しい Git リポジトリ ウィンドウがあり、リポジトリ内のすべての詳細 (すべてのブランチ、リモート、コミット履歴など) の統合ビューです。 このウィンドウには、メニュー バーの Git または View から直接アクセスするか、ステータス バーからアクセスできます。
Visual Studio 2019 でブランチを管理する
Git メニューから [ブランチの管理] を選択すると、Git リポジトリ ウィンドウにブランチのツリー ビューが表示されます。 左側のペインでは、右クリックのコンテキストメニューを使用して、ブランチのチェックアウト、新しいブランチの作成、マージ、リベース、チェリーピックなどを行うことができます。 ブランチをクリックすると、右側のペインにコミット履歴のプレビューが表示されます。
Visual Studio 2019 での受信コミットと送信コミット
ブランチをフェッチすると、 Git Changes ウィンドウのブランチドロップダウンの下にインジケータが表示され、リモートブランチからプルされていないコミットの数が表示されます。 このインジケータは、プッシュされていないローカルコミットの数も示します。
このインジケーターは、 Git リポジトリ ウィンドウでそのブランチのコミット履歴に移動するためのリンクとしても機能します。 履歴の上部に、これらの受信コミットと送信コミットの詳細が表示されるようになりました。 ここから、コミットをプルまたはプッシュすることもできます。
Visual Studio 2019 のコミットの詳細
コミットをダブルクリックすると、Visual Studio によってその詳細が別のツール ウィンドウに表示されます。 ここから、コミットを元に戻したり、コミットをリセットしたり、コミットメッセージを修正したり、コミットにタグを作成したりできます。 コミット時に変更されたファイルをクリックすると、Visual Studio によって、コミットとその親の [差分] ビューが並べて表示されます。
Visual Studio 2019 でマージ競合を処理する
マージ中に競合が発生するのは、2 人の開発者がファイル内の同じ行を変更し、Git がどちらが正しいかを自動的に認識しない場合です。 Git はマージを停止し、競合状態にあることを通知します。
Visual Studio を使用すると、マージの競合を簡単に特定して解決できます。 まず、 Git リポジトリ ウィンドウの上部に金色の情報バーが表示されます。
[Git の変更] ウィンドウには、「マージが進行中です。競合しています」というメッセージも表示され、マージされていないファイルはその下の別のセクションに表示されます。
ただし、これらのウィンドウをどちらも開いておらず、代わりにマージ競合のあるファイルに移動する場合は、次のテキストを検索する必要はありません。
<<<<<<< HEAD
=======
>>>>>>> main
代わりに、Visual Studio では、開いているファイルに競合があることを示すゴールドの情報バーがページの上部に表示されます。 次に、リンクをクリックして マージエディタを開くことができます。
Visual Studio 2019 のマージ エディター
Visual Studio のマージ エディターは、受信する変更、現在の変更、およびマージの結果を表示する 3 方向のマージ ツールです。 マージ エディタの最上位にあるツールバーを使用して、ファイル内の競合と自動マージされた相違点の間を移動できます。
トグルを使用して、違いの表示/非表示、単語の違いの表示/非表示、レイアウトのカスタマイズを行うこともできます。 各面の上部にはチェックボックスがあり、これを使用して一方の面または他方の面からすべての変更を取得できます。 ただし、個々の変更を行うには、両側の競合する線の左側にあるチェックボックスをクリックできます。 最後に、競合の解決が完了したら、マージ エディターの [マージを受け入れる] ボタンを選択できます。 次に、コミット メッセージを書き、変更をコミットして解決を完了します。
Visual Studio 2019 で Git 設定をパーソナライズする
リポジトリ レベルおよびグローバル レベルで Git 設定をパーソナライズおよびカスタマイズするには、メニュー バーの [Git>Settings ] に移動するか、メニュー バーの [Tools>Options>Source Control ] に移動します。 次に、必要な オプションを選択します 。
Visual Studio 2019 でチーム エクスプローラーの完全なエクスペリエンスを使用する方法
新しい Git エクスペリエンスは、 バージョン 16.8 以降の Visual Studio 2019 の既定のバージョン管理システムです。 ただし、オフにしたい場合はオフにすることができます。 [Tools>Options>Environment>Preview Features に移動し、[新しい Git ユーザー エクスペリエンス] チェック ボックスを切り替えると、Git のチーム エクスプローラーに戻ります。
次のステップ
ヒント
Visual Studio での Git と GitHub の使用については、 Git 学習シリーズにサインアップしてください。