2014/01/29更新

[git] ログを確認する

このエントリーをはてなブックマークに追加      

こんにちは、です。
本日は、gitのログや変更履歴を確認する方法をブログに書きたいと思います。

画像

引用:http://flic.kr/p/iHvdhu




gitのログを確認する

最初に言うと、gitのログとかファイル差分を見るには、GUIツールで見るのが一番良いと思います、見やすい!!
たとえば、ソースツリーだと、以下のようにログとか、変更してきた履歴を見ることが出来ます。
画像
見やすいですね!自分はがっつりとログを見る時には上記のようなGUIツールを使いますが、 ちょっとした差分(HEADとの違い)とかを見る時とかは、ターミナルから見るようにしています。

このブログでは、コマンドでログを確認する方法を紹介したいと思います。
なおログ出力の詳細は、Git-の基本-コミット履歴の閲覧 | git-scm.comが分かりやすいので、詳しくはそちらをご参照ください。



ログを確認する

一番簡単なログの表示方法は、以下のように行います。
$ git log
そうすると、以下のような出力を見ることが出来ます。
commit 137638bd90f92775648fc22d13ab3d61805a5809  # ①
Author: munesada_yohei  # ②
Date:   Fri Jan 24 15:39:37 2014 +0900 # ③

    ブランチでREADME.mdを編集したよ # ④

commit 928bd4c192b6b4f7fec50ddb051c4cf9cc58559b
Author: munesada_yohei 
Date:   Fri Jan 24 15:13:33 2014 +0900

    削除した

: # ⑤
色々と出てきましたね。見た方は以下の通りです。

  • ① svnでいうところのリビジョン番号。コミットを特定する時に使う。
  • ② その作業を行った人
  • ③ コミットされた日時
  • ④ コミットメッセージ
  • ⑤ エンターを押すと、1行ずつ最後まで見える。qを押すとログ表示を終わる。

最低限この使い方を覚えれば、誰がどんなコメントをしてコミットしたのかが分かります。
でも見づらいですよね。以降では目的にあわせて、ログを見やすくする方法を説明します。


出力件数を指定する

以下のように指定すると、出力件数を指定することが出来ます。以下の場合、3件のみ表示しています。
$ git log -3
commit 137638bd90f92775648fc22d13ab3d61805a5809
Author: munesada_yohei 
Date:   Fri Jan 24 15:39:37 2014 +0900

    ブランチでREADME.mdを編集したよ

commit 928bd4c192b6b4f7fec50ddb051c4cf9cc58559b
Author: munesada_yohei 
Date:   Fri Jan 24 15:13:33 2014 +0900

    削除した

commit 29a874f265f43147ec6b0d72ed280e08a66245fe
Author: munesada_yohei 
Date:   Thu Jan 23 17:07:13 2014 +0900

    修正


各コミットを1行で表示する

コミットを羅列してみたい時には、以下のようにすると1行で表示出来ます。これは他のコマンドと組み合わせた時に便利なやつです。
$ git log --pretty=oneline
137638bd90f92775648fc22d13ab3d61805a5809 ブランチでREADME.mdを編集したよ
928bd4c192b6b4f7fec50ddb051c4cf9cc58559b 削除した
29a874f265f43147ec6b0d72ed280e08a66245fe 修正
コミットコメントが適当なことがばれてしまう。人と仕事しているなら、ちゃんとコミットコメントは書きましょう。
なお、prettyオプションにはoneline以外にも、short、full、fullerと指定が可能なようです。


コミットログのフォーマットを指定する

上記のprettyオプションでは独自のフォーマットを指定することが出来ます。例えば、コミットハッシュ、人、メッセージを1行で表示したい場合には、
$ git log --pretty=format:"%h [%cn]%s"
137638b [munesada_yohei]ブランチでREADME.mdを編集したよ
928bd4c [munesada_yohei]削除した
29a874f [munesada_yohei]修正
とすることが出来ます。これはgitログをシステムに取込むなど機械的な処理をする際に、フォーマットを指定出来るので便利です。
フォーマット文字列の詳細は、Git-の基本-コミット履歴の閲覧 | git-scm.comをご参照ください。


変更差分を表示する(行単位)

コミットで何が変わったのかを知りたい場合には、差分を表示することが出来ます。以下の場合には、直前のコミットでの差分を表示しています。
$ git log -p -1
commit 27a788e0a9efeea7a535030608f121c5b9d77200
Author: munesada_yohei 
Date:   Tue Jan 28 15:32:20 2014 +0900

    差分表示をしてみるためのコミット

diff --git a/README.md b/README.md
index 804b5f0..2a8ce90 100644
--- a/README.md
+++ b/README.md
@@ -7,4 +7,5 @@ this is a repository for study.

 変更したよ!他人だよ!

-ブランチで文字をついかしたよー
+ブランチで文字をついかしたよー。追加したよ。
上記では、REAME.mdというファイルで、編集があったことが分かります。


変更差分を表示する(単語単位)

単語単位にも差分を確認することが出来ます。word-diffオプションを利用します。
$ git log -U1 --word-diff -1
commit 27a788e0a9efeea7a535030608f121c5b9d77200
Author: munesada_yohei 
Date:   Tue Jan 28 15:32:20 2014 +0900

    差分表示をしてみるためのコミット

diff --git a/README.md b/README.md
index 804b5f0..2a8ce90 100644
--- a/README.md
+++ b/README.md
@@ -9,2 +9,3 @@ this is a repository for study.

[-ブランチで文字をついかしたよー-]{+ブランチで文字をついかしたよー。追加したよ。+}
削除されたところは[- -]で表示され、追加されたところは{+ +}で表示されています。


統計情報を表示する

コミットでどのファイルがどれくらい変更されたのかを知るために、統計情報を表示することもできます。以下のように行います。
$ git log --stat -1
commit 27a788e0a9efeea7a535030608f121c5b9d77200
Author: munesada_yohei 
Date:   Tue Jan 28 15:32:20 2014 +0900

    差分表示をしてみるためのコミット

 README.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
REAME.mdに変更があったことが分かります。


リビジョングラフを表示する

アスキーアート的な感じで、以下のようにグラフを表示することが出来ます。 グラフ表示の場合には、1コミット1行で表示するときれいに表示されていい感じです。
$ git log --graph --pretty=format:"%h [%cn]%s"
*   f87ad7a [munesada_yohei]Merge branch 'master' of https://github.com/yoheiMune3/study
|\
| * 094e89d [munesada_yohei]必要なファイルを追加したよ
* | 27a788e [munesada_yohei]差分表示をしてみるためのコミット
|/
* 137638b [munesada_yohei]ブランチでREADME.mdを編集したよ
* 928bd4c [munesada_yohei]削除した
* 29a874f [munesada_yohei]修正
* b6cc634 [munesada_yohei]追加
* 73cae19 [munesada_yohei]追加
* 30378d9 [munesada_yohei]削除
* c429c7c [munesada_yohei]追加
* 6ba9f39 [munesada_yohei]初めてコミットしてみた
* cd4f0b7 [munesada_yohei]2回目のコミット
* 62b90f4 [munesada_yohei]初めてコミットしてみた
* b334bc3 [yoheiMune3]Initial commit
途中で、2人のコミットがぶつかって、マージしているのが分かります(といっても2人ともmunesadaになっちゃってますがw)。
こーゆうツリーが表示出来ると、なんだかいい感じですね。

Qiitaで紹介されてたグラフ表示も良い感じです。
$ git log --graph --date=short --decorate=short --pretty=format:'%Cgreen%h %Creset%cd %Cblue%cn %Cred%d %Creset%s'
色分けして表示されます。



参考資料

gitログについては、以下のページが詳しくすごく参考になりました。
ありがとうございます。

- Git-の基本-コミット履歴の閲覧 | git-scm.com - git log 使い方 | transitive.info

最後に

簡単ではありますが、gitログの見方をブログに書きました。 ちょっとしたログ確認なら、そのままターミナルでやっちゃう方が早いので、ぜひ少しずつコマンドを覚えて行きたい限りです。 またprettyオプションのフォーマットは自分好みのものを設定出来ると良いですね。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。