Git

git log を掘る

様々なgit log

git log –parents

git logに–parentsオプションをつける事で該当コミットの親IDを発見する事ができる。

このコマンドを打つと以下のように2つのSHA1 IDが表示される。

 

左側が該当コミットのIDで右側が親コミットのIDを示している。
故にここから新たなコミットが加わると、現在ある最新のコミットIDが、
新しくできたコミットの親IDとして右側に配置される。

 

また–parentsオプションによってマージコミットを簡単に発見できる。

以下のようにコミットIDが三つ表示されている物は、マージコミットである。

3つのコミットIDは以下を示している。

  1. マージしたコミットID
  2. マージ以前の最新コミットID
  3. 該当ブランチで最後に行ったコミットID

 

コミットの表示制限

git logに対して、特定にファイル名を加えることで、該当ファイルに影響を与えてコミットのみに制限可能です。

$ git log index.html

以上のように指定すると、index.htmlに影響を与えてたコミットのみが表示されます。

また、ファイルの指定は2つ以上でも可能です。

 

差分を確認する

git logで以下のように記述する事で、差分を確認できる。

$ git log –stat head^..head

左に、古いコミット、右に新しいコミット。

上記の場合、headから1つ前のコミットとheadのコミットを比較した差分を見る事ができる。

headの部分をSHA1 IDに置き換える事が可能

特定のコミットを探す

git log に –grepオプションをつける事で、
指定した文字列を含むコミットメッセージに一致するコミットを探せる。

具体的な使い方以下。

$ git log –prep=探したい文字列

 

git log を可視化する

git logに–graphオプションをつけることで、コミット履歴を可視化できます。

git log –graph

 

他のオプション

  • oneline:1行表示
  • decolate:branch名、タグ名など表示
  • pretty:フォーマット指定
  • –abbrev-commit:SHA1 IDを短く表示

注 –onelineは–pretty=oneline –abbrev-commitと同意らしい

 

ファイルに対してのコミット履歴をみる

git blameを使うことで該当ファイルの1行目からのコミット履歴を見れる。

$git blame ファイル名

このコマンドで以下を把握できる。

  • コミットのID
  • コミットした人
  • コミットした日時
  • 行番号
  • 行の内容

 

チーム開発でのバグ発見などに有効。

ちなみにコミットIDについている^は最初のコミットから何も変化がないこと示している。