■ はじめに
https://dk521123.hatenablog.com/entry/2024/08/11/123351
で、以前、git diffコマンドを利用して、 変更されたファイルだけLinterに書けるといった Github Actionsを書いてみた。 で、今日、削除したファイルもそのままLinterに書けてしまっていることを 報告頂き、他メンバーにご迷惑をおかけしてしまった。 始めは、ファイル存在チェックだけで済まそうと思ったが、 git diffコマンドの--diff-filterオプションってのが便利そうだったので メモっておく。 ついでに、git diffコマンド全体を纏めてみる。
目次
【1】git diffコマンド 【2】構文 【3】オプション 1)--name-onlyオプション 2)--diff-filterオプション 【4】コマンド例
【1】git diffコマンド
* ステージング・エリアにないファイルの変更状態を確認する
【2】構文
https://tracpath.com/docs/git-diff/
https://git-scm.com/docs/git-diff
git diff [<options>] [--] [<path>…] git diff [<options>] <commit>…<commit> [–] [<path>…]
【3】オプション
Options | Explanations |
---|---|
--name-only | 変更されたファイルの名前のみを表示 |
--diff-filter | 変更状態を指定してフィルタリング表示 |
1)--name-onlyオプション
* 変更されたファイルの名前のみを表示
2)--diff-filterオプション
* 変更状態を指定してフィルタリング表示 * 例えば、git diff --diff-filter=ACM (追加(A)、コピー(C)、変更(M)) のように複数指定も可能
https://qiita.com/FumiyaShibusawa/items/acc04055b1c9e03cce8a
https://qiita.com/P-man_Brown/items/e932368a1caecb5f15f2
git diff --diff-filter=[(A|C|D|M|R|T|U|X|B)…[*]] # 追加(A)、コピー(C)、削除(D)、変更(M)、名前変更(R)、 # タイプが変更された(T)、マージされていない(U)、不明である(X)、 # またはペアリングが壊れている(B)ファイルを選択
Values | Explanations |
---|---|
A | 追加 |
C | コピー |
D | 削除 |
M | 変更 |
R | 名前変更 |
T | タイプ(通常ファイル、シンボリックリンク、サブモジュールなど)変更 |
U | マージ解除 |
X | 不明 |
B | ペアリング解除 |
【4】コマンド例
# [インデックス] → [作業ツリー] の差分を見る git diff # 次の commit で反映される変更を表示 git diff --cached # リモートブランチ「develop」とブランチ「origin/develop feature/demo1」との比較 git diff origin/develop feature/demo1 # リモートブランチ「develop」と自分のブランチとの比較 # --name-only: 変更されたファイルの名前のみを表示 # HEAD: 現在のブランチの先頭のコミットへの参照 # -- "sqls/*.sql" : sqls配下のSQLファイルのみ抽出 git diff --name-only origin/develop HEAD -- "sqls/*.sql" # ..: コミット同士の差分(ベースブランチの変更が含まれる) # ...: 分岐からの差分(ベースブランチの変更が含まれない) git diff --name-only origin/develop...origin/feature/demo1
参考文献
http://www-creators.com/archives/755
関連記事
Git ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2018/06/29/104028
Git ~ 基本編 / 基本コマンド ~
https://dk521123.hatenablog.com/entry/2020/10/02/000000
Github Actions ~ 差分ファイルを抽出する ~
https://dk521123.hatenablog.com/entry/2024/08/11/123351