Hatena::ブログ(Diary)

murankの日記

2011-03-20

git diff の使い方がほんの少し理解できた

| 20:05

いままでなんとなく使ってきたけど、ようやく使い方が分かったような気がするのでメモ。


前提知識
  • インデックスとワーキングツリーが理解できていること
  • HEAD が何か分かっていること

git diff

ワーキングツリーとインデックスの差分を表示。

git add した後にさらに修正したけど、そういえばどの時点で git add したのかなー、というときに使う?

git add したらすぐにコミットする自分には関係なさそう。


f:id:murank:20110320130947p:image


git diff --cached

HEAD とインデックスの差分を表示。

git add して、コミットする前に差分を確認したい時に使うんだと思う。

自分は git diff よりもこっちの方をよく使う。


f:id:murank:20110320130950p:image


git diff HEAD

HEAD とワーキングツリーの差分を表示。

前にコミットした時からどれくらい編集したか確認したい時に使う。

HEAD の部分はコミット(HEAD、HEAD^ やコミットのハッシュ値)やブランチ、タグを指定できる。


f:id:murank:20110320130948p:image


git diff HEAD^..HEAD

コミット間の差分を表示。

ドット 2 つ (..) は空白でも OK。(git diff HEAD HEAD^ と同じ)

これも HEAD の代わりにコミットやブランチ、タグを指定できる。


f:id:murank:20110320130949p:image


git diff コミットその1...コミットその2

コミットその1、コミットその2 の共通の親と コミットその2 の差分を表示。

コミットその1 と コミットその2 が同じブランチだと上のバージョンと同じ結果になる。

イメージで見たほうが多分分りやすい。


git diff Y...D (ドット 3 つ版)

f:id:murank:20110320140504p:image



参考: git diff Y..D (ドット 2 つ版)

f:id:murank:20110320140503p:image




これ以外にもパッチを作ったり、出力形式をいじったりといろいろできるようだ。

ただ、正直そこまで使いこなせる気もしないし、使いこなす気もしない。


もっと使いこなしたい人はマニュアルを参照してください。

git-diff(1)

ギトギトギトギト 2012/07/30 21:57 開発時に困り、このサイトにたどり着きましたが、
とてもわかりやすい図で、参考になりました。助かりました!!
ありがとうございます。お気に入りに入れさせていただきました。

strange17strange17 2014/04/27 09:15 図がわかりやすくて良いです。ありがとうございます。