
Gitの履歴はテキストで読むと味気なく、単なる事実の羅列のように思えます。しかしコミットには開発者の思考や試行錯誤の歴史が詰まっています。本日紹介する「gitlogue」はその物語を映画のように再生してくれるターミナルツールです。
ただの差分表示ではなく、タイピングアニメーション・カーソル移動・ファイルツリーの変化まで再現し、コードの進化を視覚的に楽しめるのが最大の特徴です。
以下のような特徴を持っています。
■ コミット履歴をアニメーション再生
-
実際に書いているようなタイピング演出
-
カーソル移動、削除、ファイル操作の動きも再現
-
コードの変化が“ストーリー”として見える
■ Diff の視覚化
-
ステージ済み/未ステージの差分を見やすく表示
-
Tree-sitter による 29 言語のシンタックスハイライト
■ プロジェクトのファイルツリー表示
-
ディレクトリ構造と変更統計を同時に確認できる
■ スクリーンセーバーモード
-
ランダムなコミットを延々と再生
-
作業中の“背景映像”としても使える
■ テーマ変更・速度調整
-
9 種類のテーマ
-
ファイルタイプごとのタイピング速度ルール
-
ignore 設定も柔軟
以下使用方法を説明します。
インストール方法
複数の方法が用意されており、環境に合わせて選べます。
インストールスクリプト(推奨):
curl -fsSL https://raw.githubusercontent.com/unhappychoice/gitlogue/main/install.sh | bash
Homebrew:
brew install gitlogue
Cargo:
cargo install gitlogue
インストールスクリプトを使用した場合、~/.local/binにインストールされます。パスが通っていない場合は、PATHに追加しておきます。
export PATH="$PATH:/Users/sora/.local/bin"
あとは、適当なGitリポジトリに移動し「gitlogue」コマンドを実行するだけです。代表的な使い方は次のとおりです。
# スクリーンセーバーとして起動 gitlogue # 特定のコミットを再生 gitlogue --commit abc123 # コミット範囲を再生 gitlogue --commit HEAD~5..HEAD # 古い順に再生 gitlogue --order asc # diff を見る gitlogue diff gitlogue diff --unstaged # 作者でフィルタ gitlogue --author "john" # 日付でフィルタ gitlogue --after "2024-01-01"
設定ファイル ~/.config/gitlogue/config.toml で、テーマ・速度・背景などを細かく調整できます。
▲超高速検索ツールripgrepを再生してみた動画です。
まとめ
開発者のunhappychoice氏は、「ターミナルを彩るスクリーンセーバーを自作したい」という動機から開発をスタートしたと述べています。リアルなタイピング表現や、見た目の美しさ(テーマ・ハイライト)、Git log / diff の"補完"として自然に使えること、スクリーンセーバーとして眺めて楽しいことなどにこだわりを持って作られたそうです。
自分の携わっているプロジェクトはもちろん、GitHubには著名なオープンソースソフトが多数公開されています。どのような歴史を持っているのか映像として確認してみたいかたは試してみてはいかがでしょうか。
