2

difftool を使用できるようにするには、古い Git で次のような設定を使用する必要がありました。古い .gitconfig を誤って削除したため、設定はまったく同じではありません。

 [merge]
     tool=opendiff

 [mergetool]
     tool=opendiff

 [difftool]
     difftool=opendiff

自宅に空の .gitconfig があります。opendiff ツールは引き続き使用できます。ありえないはずなので、これは驚きです。

Git の difftool 設定は内部でどのように機能しますか?

4

2 に答える 2

5

ここで、mergetool と difftool を使用した完全なセットアップを確認できます。

設定がまだアクティブなように見える場合は、git-config が構成オプションを検索する 3 つのファイルがあるため、グローバルに設定されているか、アカウントで設定されている可能性があります。

$GIT_DIR/config

リポジトリ固有の構成ファイル。(ファイル名はもちろん、作業ディレクトリではなく、リポジトリのルートに相対的です。)

~/.gitconfig

ユーザー固有の構成ファイル。Git のインストール場所にある「グローバル」構成ファイルとも呼ばれます。

$(prefix)/etc/gitconfig

システム全体の構成ファイル。


git configGit は、「 」と入力すると保存するように指定した場所にユーザー情報を保存します。

git config マニュアルページから:

file-option は--system--globalまたはの--fileいずれかで、値の読み取り元または書き込み先を指定します。および
で特に定義されていない限り、デフォルトでは、現在のリポジトリの構成ファイル .git/config が想定されます。GIT_DIRGIT_CONFIG

これらの規則は、コマンド ライン オプションまたは環境変数によってオーバーライドできます。およびオプションは--global--system使用されるファイルをそれぞれグローバル ファイルまたはシステム全体のファイルに制限します。
環境変数にも同様のGIT_CONFIG効果がありますが、任意のファイル名を指定できます。

以前のインストールでその環境変数が設定されていた可能性がありますか?

GIT_CONFIG

の代わりに、指定されたファイルから構成を取得します.git/config。" --global" オプションを使用すると、強制的に~/.gitconfig. " --system" オプションを使用すると、強制的に$(prefix)/etc/gitconfig.

注: Mac OsX の$(prefix)場合、(ここで説明さ/usr/localれているようにGit をインストールした場合)

make prefix=/usr/local all
sudo make prefix=/usr/local install
which git
于 2009-06-30T13:18:52.400 に答える
3

また、( VonC の回答で述べられているように、Git が構成を検索する多くの場所について覚えていることに加えて) git-difftoolgit-mergetoolの両方が、どのツールの自動検出/自動検出を (固定された優先順位で) 提供することを覚えておく必要があります。あなたは利用可能です。

これが、「git difftool」がコンピューターで opendiff を呼び出す理由かもしれません。

于 2009-06-30T14:06:19.603 に答える