lazygitで部分ステージングからリベースまでを見渡す
Lazygit は、ファイルのステージング、差分の検査、ブランチの管理、リベース、一般的な Git タスクの解決のためのターミナル インターフェイスです。
ひと目でわかる
- これは何?
- jesseduffield/lazygitは、Gitの差分、コミット、ブランチ、ワークツリーを一つのターミナル画面で選んで操作するGo製TUIです。
- 誰に向いている?
- lazygitは、Gitの強力な機能を覚えにくいコマンド列や手編集の作業一覧ではなく、状態を見ながら操作したい開発者に向きます。部分ステージング、インタラクティブリベース、パッチ、ワークツリー、差分比較まで画面に集約できますが、Undoできない変更やサードパーティパッケージの保守は残ります。
- 商用利用できる?
- できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 1 日前です。
- 何の言語で書かれている?
- 主に Go です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
Gitの状態を画面で読みながら操作する
lazygitは、Gitコマンドをターミナルの画面へまとめるシンプルなTUIです。Gitの機能が不足しているのではなく、インタラクティブリベースやファイルの一部だけをステージする手順が見えにくいことを対象にしています。作業ツリー、コミット、ブランチ、差分を同じ場所で確認し、選択した対象へ操作できるため、現在の状態を見失いにくい構成です。
メタデータではGo、MITライセンス、masterブランチ、81,732スター、3,005フォーク、1,024件のオープンイシュー、v0.64.1が記録されています。これはプロジェクトの公開状況を読む材料であり、操作の正しさやチームのGit運用との適合性を証明するものではありません。導入を決めるなら、画面の便利さではなく、自分たちが日常的に行う変更単位へ当てはめて確認します。
行単位のステージングとリベース
READMEの操作例では、スペースで行をステージし、vで範囲を選び、aでハンク全体を選べます。変更の一部分だけをコミットへ入れたいとき、パッチファイルを手で編集する代わりに画面上で対象を絞れます。インタラクティブリベースはiで始め、コミットのsquash、fixup、drop、edit、上下移動を選び、mでリベースのオプションを開きます。
チェリーピックはコミットのコピーと貼り付けとして説明され、bisectはコミットビューでbを押して始めます。resetメニューにはgit statusが示すすべてを消すnukeがあり、汚れたサブモジュールも対象です。便利な操作ほど破壊範囲が大きくなるため、キーを覚えるだけでなく、対象ブランチと作業ツリーを確認してから実行する手順を置きます。
パッチ、比較、ワークツリー
lazygitは、古いコミットからカスタムパッチを作り、パッチを削除または逆適用する操作を用意しています。ベースコミットをマークし、フィーチャーブランチ側のコミットだけを別ブランチへリベースする流れもREADMEにあります。ブランチ画面でwを押すとワークツリーを作成できます。複数の作業を分けたい開発者には、ブランチの切り替えと作業ディレクトリの関係を画面で把握しやすい点が役立ちます。
UndoとRedoはzとShift+zに割り当てられ、Undoはreflogを使うと説明されています。ただし、作業ツリーやstashへの変更はUndoできません。コミットグラフでは作者ごとに色が付き、親コミットを強調できます。Shift+wで二つのコミットを比較し、差分を反転してEscapeで終える流れも、レビュー前の確認に使えます。
GitHubとGitflowを追加する条件
GitHub CLIのghがインストール済みで認証されていれば、ブランチパネルにGitHubプルリクエストを表示できます。これはlazygitがGitHubアカウントを独自に管理するという説明ではなく、外部CLIの状態を前提にした連携です。認証ユーザー、表示されるリポジトリ、ネットワーク、Pull Requestの操作権限はgh側と分けて確認します。
git-flowツールが入っていればGitflowをサポートし、ブランチビューでiを押すとGitflowの選択肢が出ます。チームがGitflowを使っていないなら、機能があることだけで運用を変える必要はありません。既存のブランチ保護、レビュー、コミット規約を優先し、lazygitではどのGit操作を許可するかを決めるのが現実的です。
配布元を選ぶインストール
READMEは、Windows、macOS 10.12以降、Linuxのバイナリに加え、Homebrew、MacPorts、Void Linux、Scoop、Arch、Fedora、DebianやUbuntu、NixOS、FreeBSD、Termux、Conda、Go、Chocolatey、Wingetなど多くの配布経路を列挙しています。dev containerへの言及もあります。
一方、パッケージの多くはサードパーティが保守するため、利用者が確認するよう警告されています。手動導入ではリポジトリを取得してgo installする方法や、go run main.goで一度にビルドして実行する方法が案内されています。配布名だけで同じ版と同じパッチが得られるとは限らないため、OS、配布元、バージョン、更新方法を記録します。
設定、ログ、終了後のディレクトリ
Gitリポジトリ内でlazygitを呼び出し、シェルにlgなどのエイリアスを置くのが基本です。キーバインドはdocsにあり、設定はdocs/Config.md、カスタム差分レンダラーとカスタムコマンドにも専用文書があります。LAZYGIT_NEW_DIR_FILEを使ったシェル関数では、終了後にシェルのディレクトリを変更する方法が説明されています。
ローカルで問題を調べる場合は、一つのターミナルでlazygit --debug、別のターミナルでlazygit --logsを実行する手順がREADMEにあります。ログにリポジトリ名や差分が含まれるかは環境で確認し、共有範囲を決めます。設定をチームで配るなら、個人のキーバインドと安全確認が必要な破壊操作を分けて文書化します。
MITライセンスと運用上の限界
lazygitはMITライセンスで、著作権はJesse Duffieldに帰属します。LICENSEには利用、複製、変更、結合、公開、配布、再許諾、販売の条件と、現状のまま提供され保証を行わない旨が記載されています。これは導入や再配布の条件を確認する材料ですが、Git操作の安全性やサポート義務を保証するものではありません。
READMEは代替としてGitUI、tig、GitArbor TUIも挙げています。選択は人気ではなく、必要な操作、端末環境、認証連携、Undoの範囲、配布元の保守で比べます。まず復元可能な検証用リポジトリで部分ステージ、リベース、nuke、ワークツリー、Pull Request表示を確認し、チームの保護ルールに合う操作だけを日常フローへ入れるのが安全です。
編集部の結論
lazygitは、Gitの強力な機能を覚えにくいコマンド列や手編集の作業一覧ではなく、状態を見ながら操作したい開発者に向きます。部分ステージング、インタラクティブリベース、パッチ、ワークツリー、差分比較まで画面に集約できますが、Undoできない変更やサードパーティパッケージの保守は残ります。採用前にキーバインド、reflogを使うUndoの範囲、GitHub CLIの認証、配布元の版を小さなリポジトリで確認してください。
コミュニティノート