Git操作をよりスマートに「Lazygit」
普段からCLI, TUIでターミナル操作や開発体験を充実させている方なら「Lazygit」1度は聞いたことがあるのではないでしょうか? Lazygitは、Gitをターミナル上で視覚的かつ直感的に操作できるGo製TUIになります。 もうすでにLazygit関連の記事はたくさんあるのですが、改めて皆さんにLazygitを知ってもらいその魅力が伝えられたらと思っています。 GitHub - jesseduffield/lazygit: simple terminal UI for git commands なぜLazygitなのか 日々の開発作業で「Git」は切り離せない存在ですよね。 add, commit, push, switch, log……。 これら頻繁に打つコマンドを、より楽に、かつ快適な体験として行いたいと考えている人も多いはずです。 そんな開発者の悩みを解消してくれるのが、Lazygitです! 導入もHomebrewを入れている方ならbrew install lazygitでできますし、他の方法についてもこちらをご覧ください。 単なる効率化だけでなく、CLIでは少し腰が引けてしまうcherry-pickや複雑なrebaseなどの操作をより簡単に実行できる点も推したい理由のひとつです。 lazygitの魅力 1. 操作がVimライクでとても良い 私は普段からVimやNeovimを用いて開発していますが、Lazygitはその操作体系が非常に馴染みます。 基本操作はVimキーバインドで行えるため、エディタとのスイッチングコストがほぼゼロ。 もし「この操作はどうやるんだっけ?」と迷っても、? キーを叩けばその場でヘルプを表示することができます。 2. 視認性が高い 差分(Diff)の確認も、わざわざ別画面を開く必要はありません。下の画像のようにプレビューパネルに常に表示されるため、コードの変更内容を確認しながらテンポよく作業を進められます。 また、ブランチの分岐やマージの履歴も同様にターミナル上で確認することが可能です。 こちらは、deltaを用いることでよりDiff表示を見やすくしています。 GitHub - dandavison/delta: A syntax-highlighting pager for git, diff, grep, and blame output さらに便利なのが、ファイル内の特定の行だけを選んでステージングできる機能です。 ついつい複数の修正を一つのファイルに混ぜてしまった時でも、Enterで中に入って必要な箇所だけをSpace(ステージング)で選べば大丈夫です。 3. 自由度の高いカスタマイズ Lazygitは、MacOSの場合だと~/Library/Application\\ Support/lazygit/配下にconfig.ymlという設定ファイルが用意されます。 以下は私の設定ファイルの一部になります。 gui: theme: activeBorderColor: - "#89b4fa" - bold inactiveBorderColor: - "#a6adc8" optionsTextColor: - "#89b4fa" selectedLineBgColor: - "#313244" cherryPickedCommitBgColor: - "#45475a" cherryPickedCommitFgColor: - "#89b4fa" unstagedChangesColor: - "#f38ba8" defaultFgColor: - "#cdd6f4" searchingActiveBorderColor: - "#f9e2af" authorColors: "*": "#b4befe" git: # git log branchLogCmd: "git log --graph --color=always --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' {{branchName}} --" pagers: - colorArg: always pager: delta --dark --paging=never --side-by-side allBranchesLogCmds: - git log --graph --color=always --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --all 私は、以下のリポジトリを参考にCatppuccinのカラースキーマを使っています。 GitHub - catppuccin/lazygit: 🍴 Soothing pastel theme for Lazygit 毎日使うツールだからこそ、見た目を整えるだけで開発のモチベーションはグッと上がりますよね。 余談 lazydocker dockerコンテナを扱うためのTUI。 GitHub - jesseduffield/lazydocker: The lazier way to manage everything docker 基本的な操作感はLazygitと変わらないです。興味のある方はぜひ! lazysql ターミナルから各種データベース(MySQL, PostgreSQL, SQLiteなど)を操作できるSQLクライアント。 GitHub - jorgerojas26/lazysql at terminaltrove わざわざGUIツールを開かなくとも、ターミナル上でサクッとテーブルの中身を確認したりクエリを叩いたりできるのが最高にいいです! lazytail ログファイルの監視をTUIで行えるツールです。 GitHub - raaymax/lazytail: Log viewer for app development MCP経由のAIアシスタントと統合できるので、なかなか便利なTUI。 Lazy系のコマンドを毎回フルで叩くのは少し面倒なので、私はシェルに以下のような aliasを貼っています。 alias lg='lazygit' alias ld='lazydocker' alias lq='lazysql' alias lt='lazytail' まとめ lazygitを一度使い始めると、この沼から抜け出すことはできません。 ぜひ、lazygitで開発体験をより効率的にかつ爆速にしてきましょう!! さいごに 私たちJ.B.Goodeは一緒に働く仲間を募集しています! .RECRUIT|J.B.Goode Inc. – ソフトウェアでできること、すべて – 圧倒的な「スピード」と「柔軟性」であらゆるDXを成功させる https://www.jbgoode.jp/recruit/