gitで特定のファイルについて、過去のある時点から現在までの差分を調べる方法

こんにちは、さるまりんです。

ある時点からこのファイルどう変わったのか?を知りたくなることがあります。

gitを使ってそれを調べてみます。

1. 対象のコミットハッシュを調べる

まずは、過去の「ある時点」のコミットがどれか、そのハッシュを調べる必要があります。
git logコマンドでコミットの履歴を確認して対象のハッシュを探します。

git log --oneline

これでgitのコミット履歴を1行に凝縮して表示することができます。

2. 過去のコミットから現在までの特定ファイルの差分を表示する

git diffコマンドでコミットハッシュとファイルパスを指定して最新の状態までの差分を調べます。

git diff <コミットハッシュ> -- <ファイルパス>

例:コミットabcd123から、public/index.htmlの差分を調べるには

git diff abcd123 -- public/index.html

3. 特定の範囲内での差分を表示する

最新までではなく、特定の期間内だけの変更を知りたい場合は開始と終了のコミットハッシュを指定します。

git diff <開始コミットハッシュ> <終了コミットハッシュ> -- <ファイルパス>

例:コミットabcd123からcdef456の間のpublic/index.htmlの差分を調べるには

git diff abcd123 cdef456 -- public/index.html

おまけ:差分の内容を表示せずに変更があったかを確認するには?

ファイルに変更があったかだけであれば、git logコマンドに--statオプションを使って確認できます。

git log --stat <開始コミットハッシュ>..<終了コミットハッシュ> -- <ファイルパス>

何かの拍子に変更してしまったかもしれないファイルを探すのって大変です。
ツールをうまく使ってできるとちょっとでも効率良くなるかな。
頑張ります。

読んでくださってありがとうございました。

それではまた!