web-dev-qa-db-ja.com

.gitconfigが機能しないのはなぜですか? (外部差分用)

これを~/.gitconfigに追加しました:

[diff]
    external = mvimdiff

[difftool]
    Prompt = false

755 /bin/mvimdiffを作成しました:

#!/bin/sh

mvim -d "$2" "$5"

macVimをgitdiffツールとして呼び出すため。しかし、gitフォルダーでコマンドgit diffを実行すると、通常のdiffからシェルに結果が出力されます。 MacVimはまったくありません。 .git/config.gitconfigを上書きすることはないと確信しており、コンピューターを再起動して更新しようとしました。設定が機能しないのはなぜですか?

ありがとうございました。

3
Skyler

git difftoolを使用して「インタラクティブな」差分ツールを呼び出す方がよい場合があります。例えば:

組み込みのgvimdiffツールをmvimに適合させます。

git config --global diff.tool gvimdiff
git config --global difftool.gvimdiff.path mvim

または、mvimdiffを最初から構成します。

git config --global diff.tool mvimdiff
git config --global difftool.mvimdiff.cmd 'mvim -f -d "$LOCAL" "$REMOTE"'

次に、git difftoolを実行して、MacVimにあるそれぞれの異なるファイルを表示します。


git diff自体にMacVimを使用させたい場合は、次のように構成できます(外部スクリプトファイルなし)。

git config diff.external 'd() { mvim -f -d "$2" "$5"; }; d'

いずれにせよ、適切なmvimがPATHにあることを確認する必要があります。また、-fオプション(「フォークしない」/「フォアグラウンドで実行」)を使用する必要があります。そうしないと、git diffが一時ファイルを削除する可能性がありますMacVimそれらを読み取る機会がありました(各呼び出しからの少なくとも1つのファイルは一時ファイルになります)。

4
Chris Johnsen