1. ホーム
  2. git

[解決済み] git diff --stat でファイルのフルパスを表示させる

2022-07-29 19:39:50

質問

について git diff --stat を実行すると、いくつかのファイルはリポジトリのベースからのフルパスでリストされますが、いくつかのファイルは以下のようにリストされます。

.../short/path/to/filename.  

つまり、パスの始まりは ... で始まり、短いパスだけが表示されます。

私は git diff には、スクリプトで簡単に処理できるように、すべてのファイルのフルパスをリストアップする必要があります。何らかの方法で git diff を常にフルパスで表示させる方法はありますか?

どのように解決するのですか?

デフォルトでは git diff は 80 カラムの端末に収まるように出力を切り詰めます。

を使って値を指定することで、これを上書きすることができます。 --stat オプション :

--stat[=<width>[,<name-width>[,<count>]]]
       Generate a diffstat. You can override the default output width for
       80-column terminal by --stat=<width>. The width of the filename
       part can be controlled by giving another width to it separated by a
       comma. By giving a third parameter <count>, you can limit the
       output to the first <count> lines, followed by ...  if there are
       more.

       These parameters can also be set individually with
       --stat-width=<width>, --stat-name-width=<name-width> and
       --stat-count=<count>.

例えば、出力値を非常に大きな数値にすることで

git diff --stat=10000

gitリポジトリのルートからの相対パスを生成することに注意してください。

(スクリプトの場合は git diff-tree を直接使用したほうがいいかもしれません。 を使用する場合、同じ追加テキストが必要であることに注意してください。 --stat を使用する場合 git diff-tree . を使うかどうかの本質的な違いは git diff というフロントエンドを使うか、それとも git diff-tree 配管コマンドは、その git diff のようなオプションで構成された設定を調べます。 diff.renames のようなオプションを設定し、リネーム検出を行うかどうかを決定します。 さて、これに加えて、フロントエンドの git diff と同等のことをします。 git diff-index と同じ意味になります。 つまり git diff は設定を読み込みます。 は自動的に正しい配管を呼び出す .)