web-dev-qa-db-ja.com

すべての `git diffs`をvimdiffで表示する

git diffをセットアップして、vimdiffにラップし、「 Gim Diff with Vimdiff 」をガイドとして使用します。変更のあるファイルが多くない限り、期待どおりに機能します。

変更のあるファイルが複数あり、git diffを実行すると、最初のファイルが開き、vimdiffの最初のインスタンスを終了した後、次のメッセージが表示されます。

external diff died, stopping at filename

これは、私が慣れているものとはまったく異なる動作です。過去にSVNを使用して同様の設定を行っていましたが、複数のファイルと比較する場合、最初のファイルを確認し、:wqを使用して書き込みと終了を行い、次のファイルを開きます。

これはGitには当てはまりません。 :n[ext]を試しましたが、変更しても元のファイルが左側のウィンドウに表示されないため、変更されたバージョンと比較できます。

197
chuckg
git config --global diff.tool vimdiff
git config --global difftool.Prompt false
git config --global alias.d difftool

git dと入力すると期待どおりの動作が得られ、vimサイクルで:wqと入力すると、チェンジセットの次のファイルに移動します。

316
chuckg

あなたはgit difftoolを試すことができます、それはこのようなことをするように設計されています。

最初に、diffツールをvimdiffに設定する必要があります

git config diff.tool vimdiff

次に、diffする場合は、git difftoolの代わりにgit diffを使用します。期待どおりに機能します。

101
czchen
Git accepts kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge,
and opendiff as valid diff tools. You can also set up a custom tool. 

git config --global diff.tool vimdiff
git config --global diff.tool kdiff3
git config --global diff.tool meld
git config --global diff.tool xxdiff
git config --global diff.tool emerge
git config --global diff.tool gvimdiff
git config --global diff.tool ecmerge
20
Nanhe Kumar