git diff を徹底攻略!よく使うオプションまとめ | WWWクリエイターズ
これ、わかりやすかった。
もし比較元を指定しない場合は、デフォルトで、「インデックス」を比較元とし、 [インデックス] → [作業ツリー] と比較した際の差分を表示
https://kray.jp/blog/git-pull-rebase/
以下引用
最新のコミットとの差分を見る
// [最新コミット] → [作業ツリー] の差分を見る
git diff HEAD
インデックスとHEADの差分を見る
// [最新のコミット] → [インデックス] を比較する
git diff --cached
git diff --cached HEAD // 同義
やりたい事 | git diffコマンド |
インデックス → 作業ツリー | git diff |
HEAD → 作業ツリーの比較 | git diff HEAD |
HEAD → インデックス | git diff --cached |
// ファイル名だけを比較する
git diff --name-only
// 比較するファイルを限定する
git diff <コミット名> <コミット名> ―― <ファイル名>
// パスやファイル同士を比較する
git diff <コミット名>:<ファイル名> <コミット名>:<ファイル名>
// HEADの一個前 から HEADへの変化を表示
git diff HEAD^ HEAD
リモートブランチからmasterをpull する前に「どのくらい先にすすんじゃったんだろ?」なんて、事前に調べたい時に使います。
git pull は、いうなれば「git fetch & git merge」ですので、いきなり git pull を実行すると、いきなりローカルブランチにマージがかかってしまいます。
// リモートを取ってきて・・
git fetch origin master
// [ローカル] → [リモート追跡]の差分を見る
git diff master origin/master
// ファイル内のスペースの数の違いを無視する
git diff -b
git diff --ignore-space-changes
// ファイル内のスペースを完全に無視する
git diff -w
git diff --ignore-all-space
// 差分を文字レベルで表示する
git diff --word-diff
// 差分を文字レベルで表示する。色と+、ーだけで、差分を表現する
git diff --word-diff=color
// git diff HEAD --word-diff と同じ効果
git diff --color-words
word-diff のモード一覧
color
色だけを使って差分をハイライトする。
plain (デフォルト)
単語の差分を、[-removed-]と[+added+]を使って表示する。デリミタが入力に発生してもエスケープしない。出力が曖昧になることがある
porcelain
単語の違いを新しい1行を使って表示する。(通常は行内で差分を表現するが、必ず1行でadd, removedを表現する、porcelainは、結構読みにくいです・・。)
none
--word-diffを.gitconfigなどで強制している際に、word-diffをオフにするときに使う。