はじめに
こんにちは、ken です。
先日git reflog
の使い方を確認しようと思い git の公式ドキュメントを読んでいたところ、あまり使ったことがない git コマンドが目につきました。
気になって使ってみたところ思いの外便利そうだったので今回はその git コマンド git instaweb
について紹介しようと思います。
本記事はHRBrain Advent Calendar 2023の1日目の記事です。
git instaweb って?
git instaweb
はローカルの Git リポジトリの状態をブラウザ上で確認することができるコマンドです。ターミナル上でgit instaweb
と入力するとブラウザが立ち上がり、画像のようなページが表示されます。
ここではコミット履歴の確認やコミットごとの diff の確認などが簡単に行うことができます。
(以下に載せる画像の中には本名やメールアドレスが映っている部分があるので一部マスクしています)
使用方法
状態を確認したい git プロジェクト上で次のコマンドを入力します。
$ git instaweb
lighttpd not found.というエラーが出た場合
このコマンド実行時に次のようなエラーが出ることがあります
lighttpd not found. Install lighttpd or use --httpd to specify another httpd daemon.
lighttpdというのは web サーバーの1つです。git instaweb
コマンドではローカル Git リポジトリのコンテンツをウェブブラウザを通じて閲覧可能にするために web サーバを用意する必要があります。
なのでこのエラーが表示された場合は案内に従ってlighttpdをインストールしましょう。Mac の場合は次のコマンドでインストールが可能です。
brew install lighttpd
インストール後は再度git instaweb
コマンドを実行してみてください。
また、Macの場合は元からRubyが入っており、その標準ライブラリであるWEBrickを使えばlighttpdをインストールせずともgit instaweb
を動かすことができます。手っ取り早く動かしたい方はこちらを使うと良いかもしれません。
git instaweb --httpd=webrick
git instaweb
から確認できること
ここから先はgit instaweb
のコマンドで立ち上がるページから確認できることについて書いていきます。
shortlog
git shortlog
コマンドと同様に、コミット履歴を一覧で見ることができます。
そしてもし一覧の中で気になったコミットがあればそのコミットの diff を確認できます。
log
先程のshortlog
とほとんど同様ですがより詳細なログを見ることができます
commit
shortlog
もしくはlog
のページで気になるコミットがあればそのコミットの詳細を閲覧できます。
ここでは GitHub のようにそのコミットで行ったファイルの変更(diff)などを確認できます。
そして diff は inline 形式と side by side 形式で表示を切り替えることができます。
検索機能
ここではリポジトリの情報を検索できます。
この検索機能には commit,grep,author,committer,pickaxe の 5 種類があり、なかでもpickaxe
を使うと検索文字列が現れたり消えたりしたすべてのコミット(文字列を追加、削除、修正した変更)をリストアップできます。
たとえば「TODO」という文字列をpickaxeで検索するとTODOコメントをつけたり削除したりしたコミットの一覧が見られるということですね。これは知っておくといつか使い道がありそうです。
また検索バーの横にある「re」にチェックを入れれば正規表現を使った検索も可能です。
停止コマンド
このコマンドを使ったあとは、システムリソースを解放するためにきちんと以下の停止コマンドを実行しましょう。
git instaweb --stop
さいごに
今回は git instaweb
コマンドをご紹介しました。
terminal 上では見にくい diff や log がブラウザ上だとスッキリと表示されるので非常に見やすいですね。
忘れがちなgitコマンドもこのinstawebさえ覚えておけばコミットの詳細やログを簡単に追うことができます。まだまだgitには知らないコマンドがあるということを実感しました。
そして株式会社HRBrainでは新しいメンバーを募集しています。
弊社に興味を持った方がいればぜひご応募ください!