Table of Contents
git でファイルの現在の状態と、かなり前のコミット時点での状態を比較したい時があります。
時々忘れるので方法を以下に書きます。
コマンド git log でコミットのハッシュ値を取得
今の状態と比較したい古いコミットのハッシュ値を調べるには git log を使用します。
git log
コミットメッセージなどの情報と一緒にハッシュ値が表示されます。
コミットのハッシュ値とは、例えば以下のようなものです。
c66a294e5dff3fb3ddce84a7e273fe4afde471eb
コミットが多い場合は、オプション oneline をつけると、コミットメッセージと簡易ハッシュ値(ハッシュ値の先頭数文字)だけを表示できるので探しやすいです。
git log --oneline
以下のような簡易ハッシュ値でも問題なく比較ができます。
c66a294
コマンド git diff でコミット間の差分を調べる
それでは、先ほど得たハッシュ値を使って、ファイルの変更箇所を調べてみましょう。
これを行うには git diff コマンドを使って、以下のようにします。
git diff <比較元のコミットのハッシュ値> <比較対象のコミットのハッシュ値> <ファイル名>
例えば、test.txt というファイルの、HEADの状態とコミット c66a294 の状態との差分を調べたい場合は、以下のようにコマンドを入力します。
git diff c66a294 HEAD text.txt
「比較元のコミットのハッシュ値」を古いコミットにすると、新しいコミットのファイルの変更内容が追加を意味する緑色の文字で表示されるため、わかりやすいと思います。
以上でコミット間のファイルの変更箇所を調べることができます。