Git でファイルの変更箇所を確認

Git でのファイル比較

Git では同じパスのファイルでも「作業フォルダ」内にあり編集中のもの、 ステージングエリアに作成されたスナップショット、リポジトリで管理されているコミット毎のファイルなど、という風にたくさんの場所に存在します。

Git では git diff コマンドを使うことで、ファイルの変更確認を自在に行うことができます。

Git でのファイル比較

ここでは上の図の A から D のパターンをそれぞれ説明します。

  1. 作業フォルダ内のファイルとステージング内のファイルの比較
  2. ステージング内のファイルと最新コミットのファイルの比較
  3. 作業フォルダ内のファイルと最新コミットのファイルの比較
  4. 任意の二つのコミットの間のファイルの比較

作業フォルダ内とステージング内のファイルの比較

Git でのファイル比較

ローカルリポジトリの最新コミットと、作業フォルダ内のステージングエリアにまだ追加していないファイルを比較するには、次のコマンドが使えます。

git diff foo.txt

foo.txt の箇所は比較対象のファイルパスに置き換えてください。

ステージング内と最新コミットのファイルの比較

Git でのファイル比較

ローカルリポジトリの最新コミットとステージングエリアに追加したファイルを比較するには、次のコマンドが使えます。

git diff --staged foo.txt

--staged--cached と指定しても同じです。

作業フォルダ内と最新コミットのファイルの比較

Git でのファイル比較

作業フォルダ内のファイルと最新コミット内のファイルを比較するには、次のコマンドが使えます。

git diff HEAD foo.txt

任意の二つのコミットの間のファイルの比較

Git でのファイル比較

ふたつのコミット間での変更をチェックするには、次のコマンドが使えます。

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

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Git 入門