git difftool、すべての差分ファイルをシリアルではなくすぐに開く 質問する

git difftool、すべての差分ファイルをシリアルではなくすぐに開く 質問する

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

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

これにより、複雑な変更セットの確認が容易になり、差分ファイル間を前後に切り替えて、重要でないファイルを無視できるようになります。

ベストアンサー1

v1.7.11以降ではgitgit difftool --dir-diffディレクトリの差分を実行します。

この機能は、たとえば Meld 3.14.2 でうまく動作し、変更されたすべてのファイルを参照できます。

git difftool --dir-diff --tool=meld HEAD~ HEAD

これは便利な Bash 関数です:

git-diff-meld() (
  git difftool --dir-diff --tool=meld "${1:-HEAD~}" "${2:-HEAD}"
)

以下の回答は、gitv1.7.11 より前のインストールに適用されます。


同じ質問がgit メールリスト

私はその電子メールスレッドに基づいて、任意のコミット間のディレクトリの差分を実行するシェル スクリプトを作成しました。

git v1.7.10 以降では、スクリプトは標準の git インストールgit-diffallに含まれています。contrib

v1.7.10より前のバージョンの場合は、git-diffallプロジェクトGitHub

プロジェクトの説明は次のとおりです。

git-diffall スクリプトは、git のディレクトリ ベースの diff メカニズムを提供します。スクリプトは、diff.tool 構成オプションに依存して、どの diff ビューアが使用されるかを決定します。

このスクリプトは、比較するリビジョンの範囲を指定するために使用されるすべての形式と互換性があります。

1) git diffall: 作業ツリーとステージングされた変更の差分を表示します
2) git diffall --cached [<commit>]: ステージングされた変更とHEAD(または他の名前付きコミット)の差分を表示します
3) git diffall <commit>: 作業ツリーと名前付きコミットの差分を表示します
4) git diffall <commit> <commit>: 2 つの名前付きコミットの差分を表示します
5) git diffall <commit>..<commit>: 上記と同じ
6) git diffall <commit>...<commit>: 両方の共通の祖先から始めて、 と を含むブランチから 2 番目の までの変更を表示します<commit>

注: すべてのフォームはオプションのパス制限を使用します[--] [<path>]

このスクリプトは、Git リストの Thomas Rast が提供した例

おすすめ記事