5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

gitで変更したファイル一覧を出力するコマンド

Posted at

静的解析ツールのCLIに食わせたかった
動作はmacOS Catalina、bashで確認

コミットするファイル一覧を出力する

git diff --cached --name-only --diff-filter=ACMR
  • cachedオプションでステージしたファイルを対象にする
    • pre-commitフックで使用できる
  • name-onlyオプションでファイル名のみを出力する
  • diff-filterオプションは結果に含めたい変更の種類に応じて変更

参考 https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203

動作

$ git add test.php temp/test2.php
$ git diff --cached --name-only --diff-filter=ACMR
temp/test2.php
test.php

使用例

  • phpstan analyzeコマンドの引数にしたい場合
$ PATHS=$(git diff --cached --name-only --diff-filter=ACMR | tr '\n' ' ' 2>&1)
$ echo "phpstan analyze $PATHS --level max"
phpstan analyze temp/test2.php test.php  --level max

ブランチで変更したファイル一覧を出力する

git diff --name-only master...$CURRENT_BRANCH
  • master…$CURRENT_BRANCH間の.を3つにすることでブランチの変更ファイルのみを対象にしている

参考 https://devconnected.com/how-to-compare-two-git-branches/

動作

# --show-currentオプションはgit v2.22〜
$ CURRENT_BRANCH=$(git branch --show-current 2>&1)
$ git diff --name-only master...$CURRENT_BRANCH
test.php

使用例はコミットの場合と同様なので割愛

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?