Gitのdiffコマンドで差分を確認する方法
Gitでは、変更履歴の管理やチーム開発に欠かせないgit diffコマンドがあります。git diffコマンドは、現在の変更内容と直前の状態との差分を確認するためのコマンドで、Gitの基本的な操作の1つです。
この記事では、git diffコマンドの基本的な使い方を解説します。
コミット間の差分を確認する
git diff <コミットID1> <コミットID2>
コミットIDはgit logコマンドなどで確認できるハッシュ値(先頭7文字程度)です。
ステージとワーキングの差分を確認する
- 全ての差分
git diff
- ファイル指定
git diff <ファイル名>
- 空白の違いを無視する
git diff -w <ファイル名>
リポジトリとステージの差分を確認する
git commit -v
直前のコミット状態と実ファイル(ステージ・ワーキング)の差分を確認する
- 全ての差分
git diff HEAD
- ファイル指定
git diff HEAD <ファイル名>
リモートとローカルリポジトリの差分を確認する
コミット済みのものを比較します。
git diff origin/<ブランチ名>..HEAD
差分のあるファイル名だけを確認したい時は--name-onlyを付けます。
git diff origin/<ブランチ名>..HEAD --name-only
比較にWinMergeを使う(Windowsのみ)
.gitconfig(Windowsの場合C:\Users\<ユーザー名>\.gitconfig
にある)に次の内容を追記します。
[diff]
tool = WinMerge
guitool = WinMerge
[difftool "WinMerge"]
path = "<WinMergeのフォルダパス>\\WinMergeU.exe"
cmd = \"<WinMergeのフォルダパス>\\WinMergeU.exe\" -e -ub -dl \"Base\" -dr \"Mine\" \"$LOCAL\" \"$REMOTE\"
使い方
- ファイルを指定して比較
git difftool <ファイル名>
- フォルダ配下を全て比較
git difftool -d
各コマンドの置き換え
上記で紹介した各コマンドのgit diffの部分をgit difftoolまたはgit difftool -dとすると、WinMergeで差分が確認できます。