前回はGitを使う上で絶対に必要なコマンド(+オプション)について書いてみました。
実際には他にも必要なコマンドはたくさんありますが、今回はそのうちでも「見る」ということに焦点を当てたコマンドをまとめてみようと思います。
git status (現在の状態を見る)
まずは現状を知ることから。
git status
とすると、現在のブランチとコミットされていない、またインデックスに記録されていないファイルが表示されます。
-s
簡潔にワーキングツリーの状態を知るときには
git status -s
を使うといいと思います。
git diff (差分を見る)
次にワーキングツリーの状態から、インデックスの状態の差分を見る場合です。
git diff
とすると、現在のワーキングツリーの状態からインデックスとの差分が表示されます。
さらに、
git diff HEAD~3
のようにすれば、HEADから3つ前のコミットと現在のワーキングツリーとの差分を見ることもできます。もちろん、ハッシュ値などでも指定できます。
また、コミット間の差分は
git diff <コミットA>..<コミットB>
のようにすると見れます。ちなみに".."は空白でもできます。
--cached
HEADとインデックスの差分を見るときにはこのオプションを付けてみると見ることができます。
git ls-files (管理しているファイルを見る)
たまにGitで管理しているファイルがどれだけあるのか見たいこともあります。
そんな時には
git ls-files
と叩くと見ることができます。"ls-file"ではないので注意。
git shortlog (軽くコミットログを見る)
git log まで見る必要はないけど、コミットメッセージの一覧が見たい。
なんて時は
git shortlog
とすれば見れます。私はあんまり使わないですが…
git log (コミットログを見る)
見る系のコマンドの中でもよくオプションを付けて叩くことの多いコマンドです。
単に
git log
と叩くとコミットのハッシュ値、コミットした人、日付、コミットメッセージがコミット毎に最新のものから順番に並んで表示されます。
さらに、あるコミット以前のログを見る際には
git log <コミットA>
のように指定すると見ることができます。
間のコミットを見る際には
git log <コミットA>..<コミットB>
とすれば見ることができます。ただしコミットAより後のコミットから表示されます。
--oneline
コミットのハッシュタグとメッセージの1行目をHEADから順に表示します。
--decorate
ブランチ名や現在のHEAD、タグなどを表示します。
--graph
コミットログをグラフで表示してくれます。
--stat
コミット毎にどのファイルが修正されたかを表示してくれます。
--summary
コミット時の変更されたファイルの表示をします。
-数字 (-n 数字)
git log -5
でHEADから5つ分のコミットを表示します。
--branches
ブランチをすべて表示します。リモートの全てのブランチは表示しません。
-p
コミットログとともに完全な差分を表示します。
git reflog (HEADの遷移を見る)
コミットの修正などでHEADがあっちこっちを移動していると、HEADの位置を間違えることもよくあります。
そういうときにはHEADの遷移を見ることができる git reflog を使います。
git reflog
とすると
51d11e0 HEAD@{0}: commit: コミットしました 0a4ac5d HEAD@{1}: checkout: moving from master to branch01 …
のように表示されます。このうち
HEAD@{数字}
の部分は、そのコミットを指してくれます。
つまりハッシュ値を指定する代わりにこのHEAD@{数字}を使っても同じになります。
git show (コミットの詳細を見る)
git show
とするとHEADの差分などを見ることができます。
他のコミットを見る際には
git show <コミットA>
のようにすることでできます。