1. ホーム
  2. ギット

[解決済み】git difftool、すべてのdiffファイルをすぐに開く、シリアルに開かない

2022-04-16 15:08:20

質問

git diff のデフォルトの動作は、各差分ファイルをシリアルに開く(前のファイルが閉じられるのを待ってから次のファイルを開く)ことです。

すべてのファイルを一度に開く方法を探しています。たとえばBeyondCompareでは、同じBCウィンドウ内のタブですべてのファイルを開くことができます。

これにより、複雑な変更点のセットをレビューすることが容易になります。差分ファイル間をフリックで行ったり来たりして、重要でないファイルを無視することができます。

解決方法は?

こんな感じです。

というファイルに以下のコードをコピーしてください。 git-diffall (拡張子なし)。

#!/bin/sh
git diff --name-only "$@" | while read filename; do
    git difftool "$@" --no-prompt "$filename" &
done

ファイルを cmd をインストールしたディレクトリにあるフォルダ(例えば C:\Program Files (x86)\Git\cmd )

そして、次のように使用します。 git diff :

git diffall
git diffall HEAD
git diffall --cached 
git diffall rev1..rev2
etc...

注意事項 キーとなるのは &です。 このパラメータは、外部の diff コマンドにバックグラウンドタスクで実行するよう指示し、ファイルが直ちに処理されるようにします。BeyondCompareの場合、各ファイルがタブで表示される1つの画面が開かれます。