メモ > 技術 > 開発: Git > コマンドで差分を取得する
コマンドで差分を取得する
■ブランチの差分
※必要に応じて「git status」も使用する。
「git status」については後述している。
ブランチの差分を比較。(詳細に表示される。)
$ git diff master..develop
ブランチの差分を比較。(ファイルごとの変更量のみ表示される。)
$ git diff master..develop --stat
ブランチの差分を比較。(ファイルごとの変更有無のみ表示される。)
$ git diff master..develop --name-status
ブランチの差分コミットを比較。
$ git log master..develop --no-merges
コミットの差分を比較。
$ git diff ecd33874941c4d80ae8e292d73823779343ae3d7..e98941613496190c55e5ab56d8bab2f22e49a8c2 --stat
$ git diff ecd33874941c4d80ae8e292d73823779343ae3d7..e98941613496190c55e5ab56d8bab2f22e49a8c2 --name-status
$ git diff ecd33874941c4d80ae8e292d73823779343ae3d7..e98941613496190c55e5ab56d8bab2f22e49a8c2 --no-merges
Gitで差分ファイルを抽出+zipファイル化する方法 | 株式会社グランフェアズ
https://www.granfairs.com/blog/staff/git-archivediff
忘れやすい人のための git diff チートシート - Qiita
https://qiita.com/shibukk/items/8c9362a5bd399b9c56be
[Git]ブランチ間の差分をコミット単位で知る・見る - Qiita
https://qiita.com/ikenji/items/fecd39966bbf463da3f4
※上記のように「..」とピリオドを2つ続けて指定する。
ピリオドが無くても表示されるが、結果に影響しているようなので詳細は要確認。
以下が参考になりそう。
git diffコマンドで比較する時のダブルドット(..)とトリプルドット(...)の違いとは? | Yakst
https://yakst.com/ja/posts/4116
■ブランチの差分(マージ前の確認)
以下のコマンドだと、release 側にあって feature にない変更も「差分」として表示されてしまう。
単純に差分を確認したい場合は問題ないが、「これから feature から release にマージする作業内容は適切か」を確認したい場合、正確な内容を知ることができない。
$ git diff release..feature/abc --name-status
この場合、以下のコマンドを使用するのが良さそう。
差分ファイルを表示:
$ git diff --name-status $(git merge-base release feature/abc)..feature/abc
差分コミットを表示:
$ git log release..feature/abc --oneline
差分詳細を表示:
$ git diff $(git merge-base release feature/abc)..feature/abc
■ファイルの差分
「git diff」だと新規に作成されたファイルは差分扱いされない。
「git status」でも確認しておくと無難。
作業の状態を確認。(ブランチ名を表示。)
$ git status -bs
作業の状態を確認。(ブランチ名を表示しない。)
$ git status --short
差分のあるファイルを確認。
$ git diff --name-only
差分の詳細を確認。
$ git diff -- app/view/list.php