Git でファイルの変更箇所を確認
Git でのファイル比較
Git では同じパスのファイルでも「作業フォルダ」内にあり編集中のもの、 ステージングエリアに作成されたスナップショット、リポジトリで管理されているコミット毎のファイルなど、という風にたくさんの場所に存在します。
Git では git diff コマンドを使うことで、ファイルの変更確認を自在に行うことができます。
ここでは上の図の A から D のパターンをそれぞれ説明します。
- 作業フォルダ内のファイルとステージング内のファイルの比較
- ステージング内のファイルと最新コミットのファイルの比較
- 作業フォルダ内のファイルと最新コミットのファイルの比較
- 任意の二つのコミットの間のファイルの比較
作業フォルダ内とステージング内のファイルの比較
ローカルリポジトリの最新コミットと、作業フォルダ内のステージングエリアにまだ追加していないファイルを比較するには、次のコマンドが使えます。
git diff foo.txt
foo.txt の箇所は比較対象のファイルパスに置き換えてください。
ステージング内と最新コミットのファイルの比較
ローカルリポジトリの最新コミットとステージングエリアに追加したファイルを比較するには、次のコマンドが使えます。
git diff --staged foo.txt
--staged は --cached と指定しても同じです。
作業フォルダ内と最新コミットのファイルの比較
作業フォルダ内のファイルと最新コミット内のファイルを比較するには、次のコマンドが使えます。
git diff HEAD foo.txt
任意の二つのコミットの間のファイルの比較
ふたつのコミット間での変更をチェックするには、次のコマンドが使えます。
git diff <コミットID1> <コミットID2>
特定のファイルの変更だけに絞って変更をチェックする場合は、ファイルパスを指定します。
git diff <コミットID1> <コミットID2> foo.txt
ふたつのコミット間で変更されたファイル名のリストだけを取得したい場合は、 --name-only オプションを指定します。
git diff --name-only <コミットID1> <コミットID2>
コミットID1 から ID2 で削除された行は - と表示され、追加されたら + で表示されます。 コミットID を逆に指定すると、+/- 逆になるので注意が必要です。
Git のコミットID の短縮形とログの調べ方
コミットIDは40桁の値ですが、最低先頭4桁まで省略できます。 デフォルトでは「コミットIDの省略形」といえば7桁です。
コミットログを 1 行に 1 コミットずつ、10行のみ、コミットIDを短縮形で表示するには次のコマンドが使えます。
git log --oneline -10