git diff をまとめる

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をオフにするときに使う。