この記事に関連して。

git log --statを使ったときに、出力結果のパスが一部省略されてしまったときは--stat-width=400みたいにオプションを指定して表示幅を調整してあげればOK

単体でgit log --statを実行したときは全てフルパスで出力されていたけれど、シェルスクリプト内に書き込んで実行するとなぜか一部省略された状態のパスが次のコマンドに渡されていた。

いつもはこんな感じの出力結果でも、実行環境によってパスの表示が部分的に省略されることがあるみたい。

commit 36b91ec6693d94292c3bdc8abeadb0c86a5f2a09 (HEAD -> main, origin/main)
Author: Makoto Ohnami
Date:   Thu Dec 1 14:46:41 2022 +0900

    これでどうでしょう

 .github/workflows/deployment.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 128459a762526fa98eac8812c7b48d7fc94de235
Author: aaa
Date:   Thu Dec 1 13:03:41 2022 +0900

    test

 public_html/test.html | 1 +
 1 file changed, 1 insertion(+)

commit 5b0d152a1c4085b27cd9fc01a371a777f011de23
Author: bbb
Date:   Thu Dec 1 12:52:34 2022 +0900

    バナー

 public_html/banner/sample1.jpg  | Bin 14625 -> 16805 bytes
 public_html/banner/sample2.jpg | Bin 82418 -> 87955 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)

public_html/banner/sample1.jpg の部分が .../banner/sample1.jpg みたいになってしまうことがある。

これだと困ることがある。たとえば、正規表現で文字列抽出なんかしている場合がまさにそう。...で省略されてしまうと正しく判断ができない。

で、そんなときは--stat-width=400を付与してあげると、幅400まではちゃんと省略しない状態で結果を返してくれるようになる。

これは助かる。

自分はgit log --statで使ったけど、以下のリンク先のようにgit diffなんかでも同じ対応で調整ができるみたい。

[git]git diff –stat でパスを省略しない方法 - dackdive’s blog

この記事の環境情報

  • git 2.38.1
  • ワールドカップで日本がスペインに勝ったその日の朝