[git] ログを確認する
こんにちは、です。
本日は、gitのログや変更履歴を確認する方法をブログに書きたいと思います。
たとえば、ソースツリーだと、以下のようにログとか、変更してきた履歴を見ることが出来ます。
見やすいですね!自分はがっつりとログを見る時には上記のようなGUIツールを使いますが、 ちょっとした差分(HEADとの違い)とかを見る時とかは、ターミナルから見るようにしています。
このブログでは、コマンドでログを確認する方法を紹介したいと思います。
なおログ出力の詳細は、Git-の基本-コミット履歴の閲覧 | git-scm.comが分かりやすいので、詳しくはそちらをご参照ください。
最低限この使い方を覚えれば、誰がどんなコメントをしてコミットしたのかが分かります。
でも見づらいですよね。以降では目的にあわせて、ログを見やすくする方法を説明します。
なお、prettyオプションにはoneline以外にも、short、full、fullerと指定が可能なようです。
フォーマット文字列の詳細は、Git-の基本-コミット履歴の閲覧 | git-scm.comをご参照ください。
こーゆうツリーが表示出来ると、なんだかいい感じですね。
Qiitaで紹介されてたグラフ表示も良い感じです。
ありがとうございます。
- Git-の基本-コミット履歴の閲覧 | git-scm.com - git log 使い方 | transitive.info
最後までご覧頂きましてありがとうございました!
本日は、gitのログや変更履歴を確認する方法をブログに書きたいと思います。
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_yoheiDate: 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上記では、REAME.mdというファイルで、編集があったことが分かります。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. 変更したよ!他人だよ! -ブランチで文字をついかしたよー +ブランチで文字をついかしたよー。追加したよ。
変更差分を表示する(単語単位)
単語単位にも差分を確認することが出来ます。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_yoheiREAME.mdに変更があったことが分かります。Date: Tue Jan 28 15:32:20 2014 +0900 差分表示をしてみるためのコミット README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
リビジョングラフを表示する
アスキーアート的な感じで、以下のようにグラフを表示することが出来ます。 グラフ表示の場合には、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オプションのフォーマットは自分好みのものを設定出来ると良いですね。最後までご覧頂きましてありがとうございました!