皆さん、ターミナルで動作するTUIアプリケーションは好きですか?コマンド操作よりは手軽でGUIほど重くなく、なによりノスタルジックなレトロさを感じることができるTUIアプリケーションが筆者は大好きです。Gitクライアントに限らずTUIアプリケーションはデスクトップ環境に依存せず使え、EmacsやVimなどのエディタ上からも使用できて非常に便利です。

今回はLinuxで動作するGitクライアントのTUIアプリケーションを紹介します。

Tig

Home Page

概要

tigはVimに似たキーバインドでシンプルかつ非常に高い拡張性を秘めたTUIのGitクライアントです。筆者はこのTigの大ファンで長年ずっとgitのクライアントにはtigを使用しています。最大の魅力はそのカスタマイズ性です。.tigrcファイルに拡張コマンドを書くだけで自分の思い通りのツールに仕上げることができます。gitコマンドが一通り頭に入っている人にとってはgitコマンドのショートカットを予め登録してtig上で呼び出すようなイメージです。

例として挙げると.tigrc

bind stash A ?git stash apply %(stash)

と書くだけで、shift + aキーでstash画面上でカーソル上のスタッシュをgit stash applyすることが可能です。標準ではスタッシュ操作はshift + pgit stash popが割り当てられていますが、このように独自拡張を簡単に付け加えて使いやすくすることができます。まさにgitコマンドをtig上にショートカットとして登録していくイメージです。これでクライアント側に初期設定で入っていないgit機能もカスタマイズして使えるようになります。

Vimのキーバインドが好きで、Gitのコマンド操作も好きだけど自分なりにカスタマイズ可能なTUIツールが欲しいというタイプの人にはとてもオススメできるツールです。

インストール

Tigは多くのディストリビューションで公式パッケージが配布されています。まずはお使いのシステムのパッケージマネージャーからインストールできるか試してみましょう。Installation instractionsにソースからビルドする方法やHomebrewやLinuxディストリビューションでのインストール方法が書かれています。参考にしてください。尚、Void Linuxについては特に記述がありませんでしたが、XBPSからインストールすることが可能です。

tig screen image

Lazygit

Home Page

概要

lazygitはGo言語で書かれたキーボード操作だけでまるでGUIアプリケーションのように直感的にgitを操作できるターミナルgitクライアントです。多くのLinuxディストリビューションで公式パッケージとしてインストールが可能です。詳細は公式HPをご覧ください。TUIアプリケーションとは思えないほどの凝った作りでシームレスなGit操作を可能にしてくれます。TigがGitコマンドのショートカット的な役割だとすると、lazygitはGUIアプリに匹敵する使い心地を提供してくれます。筆者個人としてはtigの方が好みですが、LazygitはGitHubのスター数約8万の人気ツールであり、多くのファンがいます。tigと異なり一画面に複数のウィンドウを表示しタブキーや数字キーでフォーカスを切り替えて使えるのでGitの情報を一度に確認したい人にはオススメです。

インストール

lazygitは多くのディストリビューションで公式パッケージが用意されていますので、まずは使っているディストリビューションの公式パッケージから入れることを検討してください。もし無い場合にはGoのパッケージとして以下のコマンドでインストールすることができます。

go install github.com/jesseduffield/lazygit@latest

lazygit screen image

Gitui

Home Page

概要

GituiはRustで書かれたGitクライアントです。lazygitがあらゆる情報を一望できるような作りになっているのに対して、Gituiはタブ式のUIを採用しています。これによりユーザーは目的に応じたタブを開き必要な情報のみを見ることができます。表示されるタブに応じて画面下のメニューが変わり、このメニューからユーザーは操作を行います。Lazygitのように情報が全て見えるタイプが好みの人にとっては使い勝手が悪いと感じるかも知れませんが、スッキリとしたUIが好みの場合はGituiも選択肢としてありだと思います。Tigやlazygitと異なり、Vimのキーバインドは使えず、カーソルの移動は矢印による移動となるのでVimのキーバインドに抵抗のある人でも自然に操作できると思います。ターミナルのカラーパレットによっては下部のメニューが少し見にくく感じるかも知れません。

インストール

gituiも多くのディストリビューションで公式パッケージとして配布されていますので、まずはお使いのディストリビューションのパッケージマネージャーで検索してみてください。Rustの開発などを行っていてCargoが使える方は以下のコマンドからでもインストールできます。

cargo install gitui --locked

gitui screen image

Giterm

Home Page

概要

GitermはPythonで作られたツールです。実はGitHub上にはTypescriptで書かれた同名の別のプロジェクトもありましたが、こちらは最終コミットが5年前で筆者の環境ではビルドに成功しませんでした。GitermはPythonの管理ツールのpipやuvを使って導入が可能です。Pythonをお使いの方は気軽に試してみることができると思います。使ってみた感じですが、正直上記で紹介してきたTig, Lazygit, gituiに比べると機能が非常に少なく、コミットやプッシュの機能は見当たりませんでした。Gitコマンドの代わりに使うクライアントというよりはGitリポジトリの状況を確認するビューアを目的に開発されたものと考えた方が良いと思います。基本的にはGitコマンドで操作するけども全体を見通せるビューアが欲しいという場合にはpipで手軽にインストールできるので使ってみるのも面白いかも知れません。

インストール

インストールはuvかpipを用いてインストールできます。

pip install giterm
uv tool install giterm

giterm screen image

特徴とまとめ

ここまでの説明を簡単に表にまとめてみます。

名前 言語 特徴 おすすめ
Tig C 高い拡張性, Vimの操作性 Git上級者
Lazygit Go GUIライク, Vimの操作性 初心者〜中級者
Gitui Rust タブUI, メニュー中心の操作 シンプル派
Giterm Python Gitの状況確認が中心 Python愛好者

あなたにおすすめのTUI Gitクライアント

今回紹介したツールはどれも気軽に使えるものばかりですが、どれを導入しようか迷ってしまう方のために各ツールがどんな方にオススメか簡単に記しました。

  • Tig: Vimの操作感と自分でツールを拡張するカスタマイズ性を楽しみたい人
  • Lazygit: TUIとは思えない親切なTUIで快適なGit操作をしたい人
  • Gitui: Vimキーバインドに抵抗があり、下にメニューが出るタイプのUIが好きな人
  • Giterm: Git操作はコマンド中心でPythonを愛している人

最後に

開発者なら普段お世話になるGitやGitクライアントですが、どうせならカッコよく便利なツールを使いたいですよね。GUIのGitクライアントは沢山ありますので、今回は私の好きなTUIアプリを紹介しました。Vim(Neovim)やEmacsから気軽に開いて使えるTUIアプリでGitをスピーディに使いこなしましょう。

この記事が皆様のLinuxライフのお役に立てれば幸いです。