コミット間で特定のファイルの差分を表示|Git

まずは現在のブランチとコミットIDを確認します。今回は同一ブランチでのコミット間の差分を表示してみます。

ブランチの確認から

$ git branch
*feature
main

現在featureブランチにいることが確認できました。
次にこれまでのコミット履歴を確認します。

$ git log
commit 0c1fbc944ad5c090f34bf31a0ba954e2c372b283

commit 8390f34bf31dc940c1fb24a72b5c0ba954e2c3a0

commitの後ろに表示される乱数がコミットIDになります。差分を確認したいコミットIDをメモしておきましょう。

git diffコマンドで差分を表示

git diffコマンドは差分を表示するコマンドです。以下の構文を見てみましょう。

git diff コミットID..コミットID -- ファイルへのパス

これである特定のファイルのコミット間の差分を表示することができます。以下は具体例です。

git diff 0c1fbc944ad5c090f34bf31a0ba954e2c372b283..8390f34bf31dc940c1fb24a72b5c0ba954e2c3a0 -- wp-content/themes/sample/sample.php

差分をファイルに書き出す

そんな時は大なり記号(>)で書き出すことができます。

git diff 0c1fbc944ad5c090f34bf31a0ba954e2c372b283..8390f34bf31dc940c1fb24a72b5c0ba954e2c3a0 -- wp-content/themes/sample/sample.php > ./sample-diff.text

上記では現在のディレクトリにtextの拡張子で書き出しています。この時書き出すパス(場所)や拡張子は好きに設定できます。

どのファイルに何行変更があったかを調べる|git diff statオプション

statオプションをつけると差分があるファイルと変更された行数、つまりどのくらいの変更がどのファイルにあったのかを調べることができます。

git diff --stat コミットID..コミットID -- ディレクトリへのパス

以下は具体例です。

git diff --stat 0c1fbc944ad5c090f34bf31a0ba954e2c372b283..8390f34bf31dc940c1fb24a72b5c0ba954e2c3a0 -- wp-content/themes/sample/

実際に使う場面

私の場合はワードプレスのプラグインがアップデートしてバグが発生した際に使いました。プラグインも大きいものになると普通のウェブアプリケーションのようなファイル数、ソース量になっているものもあるので原因を特定する際には役立ちます。

またどこかからプロジェクトを引き継ぐ際や編集途中で少し前の状態を確認したいという場合にもこのgit diffコマンドはよく使いますので便利です。

コメント

タイトルとURLをコピーしました