Git diffでファイルの変更履歴を確認する方法【追加・変更・削除を一覧表示】

Gitを使ったチーム開発では、「どのファイルが変更されたのか」をすばやく把握することが重要です。この記事では、git diff コマンドを使って、前回の git pull 以降に追加・更新・削除されたファイルの一覧を確認する方法を、実行例付きでわかりやすく紹介します。


Git diffでできること

git diff は、任意の2つの状態間の**差分(diff)**を表示するGitの基本コマンドです。

特に以下の用途で便利です:

  • リモートとローカルの差分を確認
  • リモートで追加されたファイルを把握
  • ローカルでの変更を確認
  • ファイルの更新・追加・削除を一覧で取得

基本の構文

git diff --name-status <比較元> <比較先>
  • --name-status:ファイルの変更ステータス(A, M, D)を表示
  • <比較元> <比較先>:差分を比較する2つのブランチやコミットID

よく使う差分比較パターン

① ローカルとリモートの差分すべて

git fetch origin
git diff --name-status origin/develop

リモートブランチ(origin/develop)と現在のローカルブランチとの差分を一覧で確認できます。ローカルとリモートの両方の変更が混在します


② リモートで更新されたファイルを確認(pull前)

git fetch origin
git diff --name-status HEAD..origin/develop

これは、リモートにしか存在しない変更(まだローカルに取り込んでいない変更)を一覧で確認したい場合に使います。


③ ローカルで更新されたファイルを確認(push前)

git fetch origin
git diff --name-status origin/develop..HEAD

これは、ローカルで行った変更(まだリモートに反映されていないファイル)を表示します。


出力例(差分ファイル一覧)

以下は git diff --name-status HEAD..origin/develop を実行した結果のサンプルです:

M  src/utils/helper.php
A  src/components/NewComponent.vue
D  src/legacy/old_script.js
記号意味
MModified(変更)
AAdded(追加)
DDeleted(削除)

このように、どのファイルがどう変更されたのかが一目でわかります。


ファイル名だけを見たい場合

変更ステータスはいらず、ファイル名のみを一覧で取得したい場合は以下:

git diff --name-only HEAD..origin/develop

補足:前回pullの状態を記録しておく方法

pullのたびに現在の状態を記録しておくことで、後から差分を確認するのが容易になります。

git rev-parse HEAD > .last_pull_commit

次回、記録時点からの差分を確認:

git diff --name-status $(cat .last_pull_commit)..HEAD

まとめ

目的コマンド
ローカルとリモートの差分を確認git diff --name-status origin/develop
リモートの変更を確認(pull前)git diff --name-status HEAD..origin/develop
ローカルの変更を確認(push前)git diff --name-status origin/develop..HEAD

開発の手戻りを防ぐためにも、pullやpushの前に git diff を使って差分確認を行う習慣をつけましょう。

コメント

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