[GIT] git logの履歴をツリー表示

2018年4月4日

git テクノロジー

gitを使っていると、履歴管理を行う事が楽しくなってくる。 しかし、実際に開発作業を進めていると、GIT管理がうざったくも感じてくる。 この矛盾する感覚は、なんとも言い難いモノづくりのジレンマのようにも思われる。 そうはいっても、GIT管理はとても重要だし、過去履歴を表示する機会も少なくない。

git logは任意branchだけなので少し不便

$ git log commit 2dd181b130b1d8d5dc4119089d2d08530035a1a0 (HEAD -> dev) Merge: 2cfa979d 4f69ca70 Author: geta Date: Mon Apr 2 12:39:22 2018 +0900 SYSTEM/MENU commit 4f69ca703f0cfe07fead02c1a3c62c8760a89e36 (mbp) Author: geta Date: Mon Apr 2 12:33:36 2018 +0900 repaire BLOG/picture commit 2cfa979d0324f44af39da995fd3c5dc81a396418 (mba) Author: geta Date: Mon Apr 2 12:30:13 2018 +0900 repaire BLOG/picture upload commit d63ce1b98da7db173bf32fc4f00822e045cf3a42 Author: geta Date: Sat Mar 31 13:30:57 2018 +0900 ver1.1 : こんな感じでログがどんどん溜まっていきますが、件数が増えると見づらくて仕方ありません。 また、commit時の記述も非常に重要なのは、見てわかる通りです。 commit文の書き方うんぬんをここでは解説しませんが、プロジェクトルールは作っておいた方がよさそうです。 ここでのメンドクサポイントは、git logコマンドでは、単一branchのみの表示になってしまうのと、件数が増えると、見づらくて仕方ありません。 $ git log --oneline 2dd181b1 (HEAD -> dev) SYSTEM/MENU 4f69ca70 (mbp) repaire BLOG/picture 2cfa979d (mba) repaire BLOG/picture upload d63ce1b9 ver1.1 3bd522a4 blog-top このように、--onelineを使ってcommit文のみを見るという手もありますが、最近ようやく--graphの使い方を覚えました。

git log --graphは使わないと損

branchをまたいで、分岐やmergeした事をgraph表示してくれます。 $ git log --graph * commit 2dd181b130b1d8d5dc4119089d2d08530035a1a0 (HEAD -> dev) |\ Merge: 2cfa979d 4f69ca70 | | Author: geta | | Date: Mon Apr 2 12:39:22 2018 +0900 | | | | SYSTEM/MENU | | | * commit 4f69ca703f0cfe07fead02c1a3c62c8760a89e36 (mbp) | | Author: geta | | Date: Mon Apr 2 12:33:36 2018 +0900 | | | | repaire BLOG/picture | | * | commit 2cfa979d0324f44af39da995fd3c5dc81a396418 (mba) | | Author: geta | | Date: Mon Apr 2 12:30:13 2018 +0900 | | | | repaire BLOG/picture upload | | * | commit d63ce1b98da7db173bf32fc4f00822e045cf3a42 | | Author: geta | | Date: Sat Mar 31 13:30:57 2018 +0900 | | | | ver1.1 : ここでも--onelineが役にたちます。 $ git log --graph --oneline * 2dd181b1 (HEAD -> dev) SYSTEM/MENU |\ | * 4f69ca70 (mbp) repaire BLOG/picture * | 2cfa979d (mba) repaire BLOG/picture upload * | d63ce1b9 ver1.1 * | 3bd522a4 blog-top * | a994eab9 top-page add string * | 7a238660 blog:top add blog.css * | a992499e menu-dropdown-sample * | 5d389cd3 system:pageLists * | a3631e36 plugin:blog-edit:top & lists * | c91c8fc4 Modify : sidemenu |/ * 2e930528 system-blog add list-eyecatch * e83be551 blog sort * 3c9af304 header-border none * a988941e seminor 2days. * 68df58d9 update config ver0.0.1 * 634a65ca update contents. * 4a650c66 modify gitignore * 60710612 sql-001 * dea6dff1 (origin/master, origin/HEAD) first-commit 全貌が見えますね。 件数が増えたら確かに辛そうですが、20commitぐらいできちんとmergeしていけば、非常にまとまったlog表示になりそうです。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。