2

git difftool (この場合、Mac 用の opendiff) を使用して、最新の git コミットで行われた違いを視覚化しようとすると問題が発生します。変更されたファイルのペアごとに opendiff を起動したくありません。ディレクトリ全体を比較する opendiff の 1 つのインスタンスを起動したいだけなので、この回答のアドバイスに従いました--dir-diff。私はこのコマンドを使用して終了しました:

git difftool HEAD^ HEAD --dir-diff

問題は、このコマンドを起動すると、opendiff で違いが 0 であると表示されることです (通常の diff を使用すると複数のファイルの違いが表示されますが)。どうしたの?difftool を正しく使用するにはどうすればよいですか?

4

1 に答える 1

1

FileMerge (GUI ツール) を起動した直後に opendiff (コマンド ライン ツール) が終了するため、ファイルはすぐに削除されます。左右のフォルダーを (別の) 一時的な場所にコピーし、それらの場所で opendiff を開始する短いラッパー スクリプトを作成する必要があります。

編集: FileMerge を直接起動し、終了するまで待機するカスタム difftool を構成できます。これを ~/.gitconfig に追加します

[difftool "fm"]
cmd = /Applications/Xcode.app/Contents/Applications/FileMerge.app/Contents/MacOS/FileMerge -left \"$LOCAL\" -right \"$REMOTE\"
path =
于 2014-08-27T11:27:21.047 に答える