Visual Studio での Git 設定と優先設定
Visual Studio では、ユーザーの名前とメール アドレス、優先する差分ツールやマージ ツールなど、一般的な Git 設定と優先設定を構成および表示できます。 これらの設定と優先設定は、[Git グローバル設定] ページ (すべてのリポジトリに適用) または [Git リポジトリの設定] ページ (現在のリポジトリに適用) のいずれかの [オプション] ダイアログ ボックスで表示および構成できます。
次の 2 種類の設定を構成できます。
- Git 設定 - このセクションの設定は、Git 構成ファイルに保存されている Git 設定に対応します。 これらの設定は、Visual Studio で表示および構成できますが、Git 構成ファイルによって管理されます。
- Visual Studio 設定 - このセクションの設定では、Visual Studio によって管理される Git 関連の設定と優先設定を構成します。
設定の構成方法
Visual Studio で Git 設定を構成するには、トップ レベルの Git メニューから [設定] を選択します。
グローバルレベルまたはリポジトリレベルの設定を表示および構成するには、 [Git グローバル設定] または [Git リポジトリの設定] を選択します。
この記事の以降のセクションで説明するように、いくつかの一般的な Git 設定を構成できます。 必要な設定を構成したら、 [OK] を選択して、更新した設定を保存します。
Git 設定
また、最も一般的な Git 構成設定の一部を構成および確認することもできます。 次の設定は、Git 構成ファイルによって管理されている場合でも、Visual Studio で表示および変更できます。
- 名前と電子メール
- フェッチ中にリモート ブランチを取り除く
- プルするときにローカル ブランチをリベースする
- 暗号化ネットワーク プロバイダー
- 資格情報ヘルパー
- 差分ツールおよびマージ ツール
- Git ファイル
- リモート
- その他の設定
Note
Visual Studio の [グローバル設定] で構成された Git 設定は、ユーザー固有の Git 構成ファイル内の設定に対応します。[リポジトリの設定] 内の設定は、リポジトリ固有の構成ファイル内の設定に対応します。 Git 構成の詳細については、Git のカスタマイズに関する Pro Git の章、git-config のドキュメント、構成ファイルに関する Pro Git リファレンスを参照してください。 Visual Studio で公開されない Git 設定を構成するには、git config
コマンド (git config [--local|--global|--system] section.key value
) を使用して、値を構成ファイルに書き込みます。
名前とメール
ユーザーが指定する名前とメールは、作成するコミットのコミッター情報として使用されます。 この設定は、グローバルとリポジトリの両方のスコープで使用でき、git config
user.name および user.email の設定に対応します。
Git メニューから、[設定] に移動します。 ユーザー名とメールをグローバル レベルで設定するには、[Git グローバル設定] に移動します。ユーザー名とメールをリポジトリ レベルで設定するには、[Git リポジトリの設定] に移動します。
ユーザー名とメールを指定し、 [OK] を選択して保存します。
フェッチ中にリモート ブランチを取り除く
排除によって、リモートに存在しなくなったリモート追跡ブランチが削除され、ブランチの一覧を最新で無駄がない状態に保てるようになります。 この設定は、グローバルとリポジトリの両方のスコープで使用でき、git config
fetch.prune の設定に対応します。
グローバル レベルでは、このオプションを [True] に設定することをお勧めします。 有効な設定は次のとおりです。
- True (推奨)
- False
- 未設定 (既定値)
設定の変更方法は次のとおりです。
Git メニューから、[設定] に移動します。 このオプションをグローバル レベルで構成するには、[Git グローバル設定] に移動します。このオプションをリポジトリ レベルで構成するには、[Git リポジトリの設定] に移動します。
[フェッチ中にリモート ブランチを取り除く] を [True] に設定します (推奨)。 [OK] を選択して保存します。
プルするときにローカル ブランチをリベースする
リベースでは、上流ブランチにはない現在のブランチ内のコミットによって加えられた変更を確保し、現在のブランチを上流ブランチにリセットした後、確保されている変更を適用します。 この設定は、グローバルとリポジトリの両方のスコープで使用でき、git config
pull.rebase の設定に対応します。 有効な設定は次のとおりです。
True: フェッチ後、上流ブランチの上に現在のブランチをリベースします。
False: 現在のブランチを上流ブランチにマージします。
未設定 (既定値): 他の構成ファイルで指定されている場合を除いて、現在のブランチを上流ブランチにマージします。
対話型: 対話モードでリベースします。
マージ: ローカルに作成されたマージ コミットをフラット化せずにリベースします。
Note
Visual Studio 2022 バージョン 17.2 では、Git の最近の更新プログラムに合わせて [保存] 設定を [マージ] に変更しました。 そのため、以前のバージョンの Visual Studio で Git ツールを使っている場合、ユーザー インターフェイスには [マージ] ではなく [保存] と表示されることがあります。 ただし、その機能は変更されていません。
設定の変更方法は次のとおりです。
Git メニューから、[設定] に移動します。 このオプションをグローバル レベルで構成するには、[Git グローバル設定] に移動します。このオプションをリポジトリ レベルで構成するには、[Git リポジトリの設定] に移動します。
[プルするときにローカル ブランチをリベースする] を目的の設定に設定し、 [OK] を選択して保存します。
Visual Studio では、pull.rebase
を [対話型] に構成することはできません。 Visual Studio では、対話形式のリベースはサポートされていません。
対話モードを使用するように pull.rebase
を構成するには、コマンド ラインを使用します。
暗号化ネットワーク プロバイダー
暗号化ネットワーク プロバイダーは、グローバル スコープでの Git 構成設定であり、ランタイムで使用する TLS/SSL バックエンドを構成します。これは、git config
http.sslBackend 設定に対応します。 値は次のとおりです。
- OpenSSL: TLS および SSL プロトコルに OpenSSL を使用します。
- セキュリティで保護されたチャネル: TLS および SSL プロトコルにセキュリティで保護されたチャネル (schannel) を使用します。 Schannel は、Windows Credential Store にアクセスするネイティブの Windows ソリューションであり、エンタープライズ全体にわたる証明書の管理に使用できます。
- 未設定 (既定値): この設定が未設定の場合、OpenSSL が既定値になります。
設定の変更方法は次のとおりです。
Git メニューから、[設定] に移動します。 [Git グローバル設定] に移動して、この設定を構成します。
[暗号化ネットワーク プロバイダー] を目的の値に設定し、 [OK] を選択して保存します。
資格情報ヘルパー
Visual Studio でリモート Git 操作を実行すると、要求と共に資格情報を提供する必要があるため、リモート エンドポイントによって要求が拒否される場合があります。 その場合、Git により、資格情報ヘルパーが呼び出されます。資格情報ヘルパーは、操作を実行するために必要な資格情報を返して、要求を再度試行します。 使用される資格情報ヘルパーは、git config
credential.helper 設定に対応します。 これはグローバル スコープで使用でき、次の値を指定できます。
- GCM for Windows: ヘルパーとして Git Credential Manager for Windows を使用します。
- GCM Core: ヘルパーとして Git Credential Manager Core を使用します。
- 未設定 (既定値): この設定が未設定の場合、システム構成で設定された資格情報ヘルパーが使用されます。 Git for Windows 2.29 の時点で、既定の資格情報ヘルパーは GCM Core です。
設定の変更方法は次のとおりです。
Git メニューから、[設定] に移動します。 [Git グローバル設定] に移動して、この設定を構成します。
[資格情報ヘルパー] を目的の値に設定し、 [OK] を選択して保存します。
差分ツールおよびマージ ツール
Git では、好みのツールで差分を表示し、競合をマージします。 このセクションの設定は、git config
diff.tool および merge.tool の設定に対応します。 マージまたは差分ツールとして Visual Studio を使用するように Git を構成するには、[Git グローバル設定] および [Git リポジトリの設定] で [Visual Studio を使用する] を選択します。 他の差分およびマージ ツールを構成するには、diff.tool または merge.tool スイッチを指定した git config
を使用します。
Git ファイル
[Git リポジトリの設定] スコープの [Git ファイル] セクションを使用して、お使いのリポジトリの gitignore および gitattributes の各ファイルを表示および編集できます。
リモート
[Git リポジトリの設定] の [リモート] ウィンドウを使用して、お使いのリポジトリのリモートを構成できます。 この設定は、git remote コマンドに対応し、リモートの追加、編集、または削除に使用できます。
その他の設定
他のすべての Git 構成設定を表示するには、構成ファイル自体を開いて表示するか、git config --list
を実行して設定を表示します。
Visual Studio の設定
次の設定では、Visual Studio 内の Git 関連の優先設定を管理します。これらは、Git 構成ファイルではなく Visual Studio によって管理されます。 このセクションの設定はすべて、[Git グローバル設定] で構成されます。
- 既定の場所
- リポジトリを開くときに、Git の下にない開いているソリューションを閉じる
- サード パーティ ソースからの作成者のイメージのダウンロードを有効にする
- 既定でマージ後に変更をコミットする
- push --force を有効にする
- Git リポジトリを開くときにソリューション エクスプローラーでフォルダーを開く
- Git リポジトリを開くときにソリューションを自動的に読み込む
- ダブルクリックまたは Enter キーでブランチを自動的にチェックアウトする
既定の場所
[既定の場所] では、リポジトリを複製する既定のフォルダーを構成します。
リポジトリを開くときに、Git の下にない開いているソリューションを閉じる
Visual Studio では、既定により、別のリポジトリに切り替えるとき、開いているソリューションまたはフォルダーはすべて閉じられます。 その際、[Git リポジトリを開くときにソリューション エクスプローラーでフォルダーを開く] および [Git リポジトリを開くときにソリューションを自動的に読み込む] を選択しているかどうかに応じて、新しいリポジトリのソリューションまたはフォルダーも読み込まれます。 これにより、開いているコードと開いているリポジトリの間の整合性が維持されます。 ただし、ソリューションがリポジトリと同じフォルダー ルートにない場合、そのリポジトリに切り替えるときにソリューションを開いたままにしておくことをお勧めします。 それをこの設定で行うことができます。 値は次のとおりです。
はい: リポジトリが開いている場合、現在開いているソリューションは常に閉じられます。
いいえ: リポジトリが開いている場合、Visual Studio により、現在のソリューションが Git 下にあるかどうかについてチェックが実行されます。 そうではない場合は、ソリューションは開いたままです。
常に尋ねる (既定値): これを設定すると、開いているリポジトリごとに、現在のソリューションを開いたままにするか、または閉じるかをダイアログ ボックスから選択できます。
サード パーティ ソースからの作成者のイメージのダウンロードを有効にする
[サード パーティ ソースからの作成者のイメージのダウンロードを有効にする] は、Visual Studio 固有のグローバル スコープ設定です。 オンにすると、作成者のイメージが Gravatar イメージ サービスからダウンロードされ (使用可能な場合)、[コミット] ビューと [履歴] ビューに表示されます。
重要
[コミット] ビューと [履歴] ビューに作成者のイメージを表示するために、アクティブなリポジトリに格納されている作成者のメール アドレスの MD5 ハッシュがツールによって作成されます。 その後、このハッシュは Gravatar に送信され、以前にこのサービスにサインアップしたことがあるユーザーの一致するハッシュ値が検索されます。 一致が見つかると、ユーザーのイメージがサービスから取得され、Visual Studio で表示されます。 サービスを構成していないユーザーについては、ランダムに生成されたイメージが返されます。 メール アドレスは Visual Studio によって記録されないことにご注意ください。また、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 を有効にする
この設定を有効にすると、Visual Studio 内部から push --force-with-lease
を実行できます。 既定では、 [push --force-with-lease を有効にする] は無効になっています。
詳細については、push --force-with-lease を参照してください。
Git リポジトリを開くときにソリューション エクスプローラーでフォルダーを開く
Visual Studio を使用して Git リポジトリを開くか、Git リポジトリに切り替える場合、Visual Studio によって Git コンテンツが読み込まれ、変更、コミット、ブランチを表示したり、IDE 内からリポジトリを管理したりすることができます。 さらに、Visual Studio によって、リポジトリのコードもソリューション エクスプローラー内に読み込まれます。 Visual Studio では、リポジトリ フォルダーでソリューション、CMakeLists.txt、または認識されるその他のビュー ファイルがスキャンされ、一覧としてソリューション エクスプローラーに表示されます。 そこから、読み込むソリューションまたはフォルダーを選択して、ディレクトリの内容を表示することができます。 このチェックボックスをオフにすると、Visual Studio はソリューション エクスプローラーでリポジトリ フォルダーを開きません。 これにより、基本的に、Visual Studio を開くことができるのは、Git リポジトリ マネージャーに限られます。 この設定は既定でオンになっています。
Git リポジトリを開くときにソリューションを自動的に読み込む
この設定は、[Git リポジトリを開くときにソリューション エクスプローラーでフォルダーを開く] 設定がオンの場合のみ適用できます。 Visual Studio で Git リポジトリを開き、その後のフォルダー スキャンによって、リポジトリ内にソリューションが 1 つしかないことが検出されると、Visual Studio によって、そのソリューションが自動的に読み込まれます。 この設定をオフにすると、ソリューション エクスプローラーにより、リポジトリ内にある単一のソリューションがビューの一覧に表示されます。 ただし、ソリューションは読み込まれません。 既定では、この設定はオフです。
ダブルクリックまたは Enter キーでブランチを自動的にチェックアウトする
[Git リポジトリ] ウィンドウには、ブランチの一覧がツリー構造で表示されます。 ブランチを 1 回選択すると、コミット履歴ウィンドウが切り替わり、選択したブランチのコミットが表示されます。 ブランチをチェックアウトするには、右クリックしてコンテキスト メニューを開き、[チェックアウト] を選択します。 この設定をオンにした場合、ダブルクリックするか、Enter キーを押すと、ブランチがチェックアウトされ、そのコミットが表示されます。
関連するコンテンツ
重要
ご提案がございましたら、お知らせください。 Developer Community ポータルを通じて、設計上の決定についてお客様と関わる機会を持てることに感謝いたします。
- YouTube の Visual Studio での Git の概要のビデオ
- ブログ記事「Visual Studio での Git による生産性の向上」
- [オプション] ダイアログ ボックス