Git の環境設定と設定
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Visual Studio では、いくつかの Git 関連の設定と環境設定を表示および構成できます。 たとえば、コミット メタデータへの名前とメール アドレスの設定、優先する差分とマージのツールの指定、リポジトリ クローンの既定のフォルダー パスの設定を行うことができます。
Visual Studio の Git の設定と環境設定は、次の 2 つのメインカテゴリに分類されます。
Git グローバル設定。現在のユーザーのすべての Git リポジトリに適用されます。
Git リポジトリ設定。アクティブな Git リポジトリに適用されます。
これらのカテゴリ内で、次の設定を利用できます。
Git 構成ファイルの設定。Visual Studio、コマンド ライン、または Git 構成ファイルの編集により表示および変更できます。 Git 構成ファイルの設定の例としては、ユーザー名、メール アドレス、リモート エイリアスがあります。 Git は、次のようにシステム、グローバル、およびローカルの Git 構成ファイルに設定を格納します。
システム Git 構成ファイルの設定は、コンピューター上のすべてのユーザーとリポジトリに適用されます。
グローバル Git 構成ファイルの設定は、現在のユーザーのすべてのリポジトリに適用されます。 グローバル設定は、システム設定よりも優先されます。
ローカル Git 構成ファイルの設定は、ローカル Git 構成ファイルを含むローカル リポジトリに適用されます。 システム設定は、ローカル設定よりも優先されます。
Visual Studio Git 関連の設定。Git に関連するが、Git 構成ファイルには格納されない Visual Studio 設定です。 これらの設定は Visual Studio でのみ表示および変更できます。 これらの設定の 1 つの例として、Visual Studio がリポジトリをクローンする既定のフォルダー パスがあります。
この記事では、次の方法について説明します。
- Git 設定を調べる
- Git 構成ファイルの設定を変更する
- Visual Studio Git 関連の設定を変更する
Git 設定を調べる
Visual Studio 2022 は、[Git] メニュー、[Git 変更]、および [ソリューション エクスプローラー] のコンテキスト メニューを使用して、Git バージョン管理エクスペリエンスを提供します。 Visual Studio 2019 バージョン 16.8 には、チーム エクスプローラーの Git ユーザー インターフェイスも用意されています。 詳細については、「Visual Studio 2019 - チーム エクスプローラー」タブを参照してください。
Git 構成ファイルの設定を変更する
Git 構成設定の表示と編集は、Visual Studio でも、該当する Git 構成ファイルを直接編集することでもできます。 Git 構成ファイルの設定の詳細については、「Git のカスタマイズ (英語)」および「git-config のドキュメント (英語)」を参照してください。 以降のセクションでは、一覧表示されている各 Git 構成ファイルの設定を編集する方法について説明します。
名前とメール
変更をコミットすると、Git によってコミット メタデータに名前とメール アドレスが追加されます。 Git が使用する名前とメール アドレスを編集できます。
名前とメールの設定は、グローバルまたはリポジトリ スコープで使用できます。
[Git] メニューの [Git]>[設定] を選択し、[Git グローバル設定] ビューを選択します。 このビューには、現在のユーザーの名前とメール設定が含まれています。
または、[Git リポジトリ設定]>[全般] を選択して、現在の Visual Studio プロジェクト リポジトリの名前とメール設定を編集します。
フェッチ中にリモート ブランチを取り除く
フェッチのたびにリモート ブランチを取り除くように Git に指示して、対応するリモート リポジトリに存在しなくなったローカル リポジトリ内の古くなったリモート追跡ブランチを削除できます。
[Git] メニューの [Git]>[設定] を選択し、[Git グローバル設定] ビューを選択します。 そのビューには、現在のユーザーの [フェッチ中にリモート ブランチを取り除く] オプションが含まれています。
または、[Git リポジトリ設定]>[全般] を選択して、現在の Visual Studio プロジェクト リポジトリの [フェッチ中にリモート ブランチを取り除く] 設定を編集します。
有効な値は次のとおりです。
True
(推奨)False
Unset
(既定値)
プルするときにローカル ブランチをリベースする
プルするときにローカル ブランチのリベースを選択して、リモート ブランチ履歴に対してローカル ブランチの変更内容を再生できます。
[プルするときにローカル ブランチをリベースする] 設定は、git config pull.rebase
コマンドに対応します。 この設定は、グローバルまたはリポジトリ スコープで指定できます。
[Git] メニューの [Git]>[設定] を選択し、[Git グローバル設定] ビューを選択します。 そのビューには、現在のユーザーの [プルするときにローカル ブランチをリベースする] オプションが含まれています。
または、[Git リポジトリ設定]>[全般] を選択して、現在の Visual Studio プロジェクト リポジトリの [プルするときにローカル ブランチをリベースする] オプションを編集します。
有効な値は次のとおりです。
True
: フェッチ後、リモート ブランチに対して現在のブランチをリベースします。False
: リモート ブランチを現在のブランチにマージします。Merges
: ローカルに作成されたマージ コミットをフラット化せずにリベースします。Unset
(既定値): Git 構成ファイルで特に指定されていない限り、リモート ブランチを現在のブランチにマージします。
暗号化ネットワーク プロバイダー
暗号化ネットワーク プロバイダーを、Git が実行時に使用する TLS/SSL バックエンドとして指定できます。
[暗号化ネットワーク プロバイダー] 設定は、git config http.sslBackend
コマンドに対応します。 この設定は、グローバル スコープでのみ使用できます。
[Git] メニューの [Git]>[設定] を選択し、[Git グローバル設定] ビューを選択します。 そのビューには、現在のユーザーの [暗号化ネットワーク プロバイダー] オプションが含まれています。
有効な値は次のとおりです。
OpenSSL
: TLS および SSL プロトコルに OpenSSL を使用します。Secure Channel
: TLS および SSL プロトコルに Secure Channel を使用します。 Secure Channel は、ID 認証と、暗号化によるセキュリティで保護されたプライベート通信を提供する一連のセキュリティ プロトコルを含むネイティブ Windows ソリューションです。Unset
(既定値): この設定が未設定の場合、暗号化ネットワーク プロバイダーの既定値は OpenSSL になります。
資格情報ヘルパー
Visual Studio でリモート Git 操作を実行すると、要求に対する資格情報が必要とされるため、リモート エンドポイントが要求を拒否する場合があります。 そのときは、Git が資格情報ヘルパーを呼び出して必要な資格情報を取得してから、要求を再試行します。 Git が使用する資格情報ヘルパーを指定できます。
[資格情報ヘルパー] 設定は、git config credential.helper
コマンドに対応します。 この設定は、グローバル スコープでのみ使用できます。
[Git] メニューの [Git]>[設定] を選択し、[Git グローバル設定] ビューを選択してこの設定を構成します。
[資格情報ヘルパー] を目的の値に設定し、 [OK] を選択して保存します。
有効な値は次のとおりです。
GCM for Windows
: ヘルパーとして Git Credential Manager for Windows を使用します。GCM Core
: ヘルパーとして Git Credential Manager Core を使用します。Unset
(既定値): この設定が未設定の場合、システム構成で設定された資格情報ヘルパーが使用されます。 Git for Windows 2.29 時点では、既定の資格情報ヘルパーはGCM Core
です。
差分とマージのツール
差分またはマージの競合を表示するために Git が使用するツールを指定できます。
差分とマージのツールの設定は、git config diff.tool
と git config merge.tool
コマンドに対応します。 Visual Studio をマージまたは差分のツールとして設定することも、Git コマンド ラインから他の差分とマージのツールを構成することもできます。 差分とマージのツールの設定は、グローバルまたはリポジトリ スコープで指定できます。
[Git] メニューの [Git]>[設定] を選択し、[Git グローバル設定] ビューを選択します。 そのビューには、差分とマージのツールの設定が含まれています。
差分とマージのツールの設定を目的の値に設定し、[OK] を選択して保存します。
または、[Git リポジトリ設定]>[全般] を選択して、現在の Visual Studio プロジェクト リポジトリの差分とマージのツール設定を編集します。
有効な差分とマージのツールは次のとおりです。
Visual Studio
None
(既定値)
その他の差分とマージのツールの設定を構成するには、Git コマンド ラインを使用します。
リモート
[Git リポジトリ設定] の [リモート] ペインを使用して、リポジトリのリモートを追加、編集、または削除できます。 この設定は git remote add
コマンドに対応します。 [リモート] ペインは、リポジトリ スコープでのみ使用できます。
リモート リポジトリをクローンすると、Git は、クローンしたリモート リポジトリの URL の短縮形としてエイリアス origin
を割り当てます。 便宜上、フォーク元のリポジトリに upstream
という名前の別のエイリアスを追加できます。これは上流リポジトリと呼ばれます。 次の手順では、upstream
エイリアスを追加する方法について説明します。
Visual Studio で upstream
エイリアスを追加するには、次の手順に従います。
メニュー バーで [ツール]>[オプション] の順に選択して、[オプション] ウィンドウを開きます。 [ソース管理]>[Git リポジトリ設定]>[リモート] の順に選択し、[追加] を選択して [リモートの追加] ダイアログを開きます。
[リモートの追加] ダイアログで、
upstream
という名前の新しいリモートを追加し、フォークしたリポジトリの Git クローン URL を入力します。 次に、[保存] を選択します。
その他の設定
他のすべての Git 構成設定を表示するために、Git 構成ファイル自体を開いて表示することも、git config --list
を実行して設定を表示することもできます。
Visual Studio Git 関連の設定を変更する
次の設定で、Visual Studio の Git 関連の環境設定を管理します。 これらの設定は、Visual Studio 内からのみ表示および編集できます。
- 既定のリポジトリの場所
- リポジトリを開くときに、Git の下にない開いているソリューションを閉じる
- サード パーティ ソースからの作成者のイメージのダウンロードを有効にする
- 既定でマージ後に変更をコミットする
- push --force-with-lease を有効にする
- Git リポジトリを開くときにソリューション エクスプローラーでフォルダーを開く
- Git リポジトリを開くときにソリューションを自動的に読み込む
- ダブルクリックまたは Enter キーでブランチを自動的にチェックアウトする
- .gitignore と .getattributes ファイルを編集する
Visual Studio Git 関連の設定にアクセスする方法の詳細については、「Git 設定を調べる」を参照してください。 次に、これらの Visual Studio Git 関連の各設定を編集する方法について説明します。
既定のリポジトリの場所
Visual Studio でリポジトリをクローンする既定のリポジトリ フォルダーを設定できます。
[既定のリポジトリの場所] 設定は、グローバル スコープでのみ使用できます。
リポジトリを開くときに、Git の下にない開いているソリューションを閉じる
既定では、異なるリポジトリに切り替えると、Visual Studio は、Git リポジトリ内の開いているソリューションまたはフォルダーをすべて閉じます。 [リポジトリを開くときに Git 下にない開いているソリューションを閉じる] 設定は、開いているソリューションまたはフォルダーと選択したリポジトリとの一貫性を保ちます。 ただし、ソリューションまたはフォルダーがリポジトリ内にない場合は、リポジトリを切り替えるときにソリューションを開いたままにしておく場合があります。 それをこの設定で行うことができます。
ヒント
この設定を [Git リポジトリを開くときにソリューションを自動的に読み込む] と組み合わせると、Visual Studio は、切り替え先の Git リポジトリのソリューションを開きます。
[リポジトリを開くときに Git 下にない開いているソリューションを閉じる] 設定は、グローバル スコープでのみ使用できます。
有効な値は次のとおりです。
Yes
: リポジトリを切り替えると、Visual Studio が開いているソリューションをすべて閉じます。No
: リポジトリを切り替え、現在のソリューションまたはフォルダーが Git の下にないとき、Visual Studio はソリューションまたはフォルダーを開いたままにします。Always ask
(既定値): リポジトリを切り替え、現在のソリューションまたはフォルダーが Git の下にないとき、Visual Studio は現在のソリューションを開いたままにするかどうかをユーザーに確認します。
サード パーティ ソースからの作成者のイメージのダウンロードを有効にする
有効にすると、Visual Studio は、コミットと履歴のビューに表示するために 、Gravatar イメージ サービスから作成者イメージをダウンロードします。 Gravatar イメージを構成していない場合、Gravatar イメージ サービスはランダムに生成したイメージを返します。
重要
コミットと履歴のビューに作成者イメージを提供するために、Visual Studio は、アクティブなリポジトリに格納されている作成者のメール アドレスを使用して MD5 ハッシュを作成し、そのハッシュを Gravatar に送信します。 Gravatar が一致するハッシュを持つユーザーを見つけると、Visual Studio はそのユーザーのイメージを取得して表示します。 Microsoft が、メール アドレスを記録したり、Gravatar やその他のサード パーティと共有したりすることはありません。
[サード パーティ ソースからの作成者のイメージのダウンロードを有効にする] 設定は、グローバル スコープでのみ使用できます。
既定でマージ後に変更をコミットする
[既定でマージ後に変更をコミットする] を有効にすると、Git は、ブランチのマージ時に新しいコミットを自動的に作成します。
- オンにすると、Visual Studio によって発行されたすべての
git merge
コマンドが、--commit
オプションを指定して実行されます。 - オフにすると、Visual Studio によって発行されたすべての
git merge
コマンドが、--no-commit --no-ff
オプションを指定して実行されます。
これらのマージ オプションの詳細については、「--commit and --no-commit」および「--no-ff」を参照してください。
[既定でマージ後に変更をコミットする] 設定は、グローバル スコープでのみ使用できます。
push --force-with-lease を有効にする
この設定を有効にすると、直近の自分のプル以降に他のユーザーがリモート ブランチにプッシュしていない場合に、リモート ブランチの作業を上書きする変更をプッシュできます。
[push --force-with-lease を有効にする] オプションは、push --force-with-lease
コマンドに対応します。 この設定は、グローバル スコープでのみ使用できます。 既定では、[push --force-with-lease を有効にする] は無効になっています。
Git リポジトリを開くときにソリューション エクスプローラーでフォルダーを開く
有効なときに Visual Studio で Git リポジトリを開くと、Visual Studio はリポジトリ フォルダーでソリューション、CMakeLists.txt、またはその他のビュー ファイルをスキャンし、ソリューション エクスプローラーに一覧として表示します。 その後、ソリューションを読み込んだり、フォルダーの内容を表示したりできます。 既定では、この設定は有効になっています。
無効なときに Visual Studio で Git リポジトリを開くと、Visual Studio はソリューション エクスプローラーでリポジトリ フォルダーを開かず、Git リポジトリ マネージャーのみが表示されます。
Git リポジトリを開くときにソリューションを自動的に読み込む
[Git リポジトリを開くときにソリューションを自動的に読み込む] 設定は、[Git リポジトリを開くときにソリューション エクスプローラーでフォルダーを開く] 設定も有効になっている場合にのみ適用されます。 Visual Studio で Git リポジトリを開き、その後のフォルダー スキャンによって、リポジトリ内にソリューションが 1 つしかないことが検出されると、Visual Studio は、そのソリューションを自動的に読み込みます。 この設定をオフにすると、ソリューション エクスプローラーは、リポジトリ内にある単一のソリューションをビューの一覧に表示しますが、ソリューションの読み込みは行いません。 既定では、この設定は無効になっています
ダブルクリックまたは Enter キーでブランチを自動的にチェックアウトする
[Git リポジトリ] ウィンドウには、ブランチの一覧がツリー構造で表示されます。 ブランチを選択すると、コミット履歴ペインが切り替わり、そのブランチのコミットが表示されます。 ブランチをチェックアウトするには、右クリックしてコンテキスト メニューを開き、[チェックアウト] を選択します。 [ダブルクリックまたは Enter キーでブランチを自動的にチェックアウトする] 設定を有効にすると、ダブルクリックするか、Enter キーを選択してブランチをチェックアウトし、そのコミットを表示できます。
.gitignore と .getattributes ファイルを編集する
Visual Studio は、リポジトリのルートに gitignore と gitattributes ファイルをすばやく追加または編集する方法を提供しています。
gitignore
または gitattributes
ファイルを追加または編集するオプションは、リポジトリ スコープでのみ使用できます。
.gitignore
と .gitattributes
ファイルを構成する方法の詳細については、「gitignore」と「gitattributes」を参照してください。