gituiの使い方完全ガイド【インストールから応用まで】
日々の開発でGitを使う際、あなたはどのように作業していますか? コマンドラインで複雑な命令を打ち込むことが多いでしょうか。それとも、専用のGUIツールを使っていますか?
コマンドラインは強力ですが、現在のリポジトリの状態を把握するには複数のコマンドが必要です。変更されたファイルの確認、差分の表示、ステージング、コミットメッセージの作成。これらの作業をスムーズに行うには、慣れと手間がかかります。
一方、GUIツールは視覚的に分かりやすい利点があります。しかし、巨大なリポジトリを扱う場合、GUIツールが重くなったり、応答しなくなったりする経験はないでしょうか。特に大規模プロジェクトでは、その遅さが作業の「摩擦」となり、開発効率を低下させてしまいます。
もし、ターミナル上でGUIの快適さを享受しつつ、圧倒的な高速性でGit操作ができるツールがあったら、あなたの開発ワークフローはどう変わるでしょうか?
本記事では、その願いを叶えるCLIツール「gitui」について、インストールから具体的な使い方、そして応用例までを詳しく解説します。
gituiとは
gituiは、Rust言語で書かれた高速なターミナルベースのGitユーザーインターフェース(TUI)です。CLI(コマンドラインインターフェース)でありながら、まるでGUIツールのように直感的な操作感を提供します。
開発者がGit操作で感じる「摩擦」を解消するために生まれました。特に、変更の確認、ファイルのステージング、コミットといった日常的なタスクを驚くほどスムーズに行えます。従来のGUIツールが巨大なリポジトリで遅延する問題を解決するため、パフォーマンスに重点が置かれています。
例えば、Linuxカーネルのような90万コミットを超える巨大リポジトリでのベンチマークでは、gituiは他の人気TUIツールと比較して圧倒的なパフォーマンスを発揮します。
| 処理時間 | メモリ消費量 (GB) | バイナリサイズ (MB) | フリーズ | クラッシュ | |
|---|---|---|---|---|---|
gitui | 24 秒 ✅ | 0.17 ✅ | 10 | なし ✅ | なし ✅ |
lazygit | 57 秒 | 2.6 | 25 | あり | ときどき |
tig | 4 分 20 秒 | 1.3 | 0.6 ✅ | ときどき | なし ✅ |
この結果が示す通り、gituiは非常に軽量かつ高速です。ターミナルを離れることなく、Gitの主要な機能を快適に操作できるのが最大の魅力です。
インストール方法
gituiのインストールは非常に簡単です。お使いのOSに応じた方法を選んでください。
macOS
Homebrewを使えば、以下のコマンドで簡単にインストールできます。
brew install gitui
Linux
多くのLinuxディストリビューションでは、パッケージマネージャーを通じてインストールできます。
Debian/Ubuntu:
sudo apt install gitui
Arch Linux:
sudo pacman -S gitui
その他 (Homebrew for Linux):
Homebrewがインストールされている場合は、macOSと同様に利用できます。
brew install gitui
Windows
Windowsでは、Scoopまたはwingetを利用するのが便利です。
Scoop:
scoop install gitui
winget:
winget install gitui
ソースコードからビルド (Rust環境が必要)
Rustがインストールされている環境であれば、cargoコマンドを使ってビルド・インストールも可能です。
cargo install gitui
cargo installを使用する場合、あらかじめRustのツールチェインがインストールされている必要があります。
基本的な使い方
gituiの操作は、主にキーボードで行います。コンテキストに応じたヘルプが表示されるため、多くのショートカットを覚える必要はありません。
1. gituiの起動
Gitリポジトリのルートディレクトリで、以下のコマンドを実行します。
gitui
すると、ターミナルにgituiのインターフェースが表示されます。画面は通常、以下の5つのタブで構成されています。
- Status (ステータス): 変更されたファイル、ステージングエリア
- Files (ファイル): リポジトリ内の全ファイル
- Log (ログ): コミット履歴
- Stash (スタッシュ): スタッシュされた変更
- Branches (ブランチ): ローカルおよびリモートブランチ
画面下部には、現在のコンテキストで利用可能なキーバインドが表示されます。
2. ファイルの選択とステージング
Statusタブが初期表示されます。ここで変更されたファイルの一覧を確認できます。
- 移動:
j(下へ),k(上へ) でファイルリストを移動します。 - ステージ/アンステージ: 選択したファイルで
enterキーを押すと、そのファイルをステージングエリアに追加したり、ステージングエリアから外したりできます。 - 全ステージ:
aキーを押すと、変更されたすべてのファイルをステージングできます。 - フォーカス切り替え:
scキーを押すと、変更されたファイルリストとステージングされたファイルリストの間でフォーカスを切り替えられます。
例えば、複数のファイルに変更を加え、その一部だけをコミットしたい場合、j/kで目的のファイルを選択し、enterでステージングを行います。
3. コミット
ステージングが完了したら、コミットを実行します。
- コミット:
cキーを押すと、コミットメッセージ入力画面が表示されます。 - コミットメッセージ入力: コミットメッセージを入力し、
enterで確定します。エディタが起動する場合は、EDITOR環境変数の設定に従います。 - コミットの確定: メッセージを入力後、画面下部に表示される
[c] Commitを選択するか、再度cキーを押してコミットを確定します。
4. タブの切り替え
画面上部のタブを切り替えることで、様々なGit操作が可能です。
- タブ切り替え:
1〜5の数字キー、またはh(左へ),l(右へ) でタブを切り替えます。
5. ヘルプの表示と終了
- ヘルプ:
?キーを押すと、現在の画面で利用可能なすべてのキーバインドが表示されます。 - 終了:
qキーを押すと、gituiを終了してターミナルに戻ります。
これらの基本的な操作を覚えるだけで、gituiを使ったGitワークフローを大幅に改善できるでしょう。
便利な使い方・応用例 3選
gituiは基本的な操作だけでなく、実際の開発シーンで役立つ便利な機能も多数備えています。ここでは、特に活用したい3つの応用例を紹介します。
1. 高速な部分ステージングとコミット
変更されたファイルの一部だけをコミットしたい、またはファイル内の特定の行だけをステージングしたい場面はよくあります。gituiはこれを非常にスムーズに行えます。
シナリオ: 複数の機能開発が混在した作業ブランチで、特定の機能に関連する変更だけを先にコミットしたい場合。
- Statusタブでファイルを選択:
j/kで目的のファイルを選択します。 - 差分表示:
enterを押してファイルをステージングする代わりに、そのファイルにフォーカスした状態でenterを押すと、右ペインにそのファイルの差分が表示されます。 - ハンク(塊)のステージング: 差分表示ペインで
j/kでハンク(変更の塊)を移動し、enterでそのハンクだけをステージングできます。 - 行単位のステージング: さらに細かく、ハンク内で
enterを押すと、選択した行だけをステージングすることも可能です。 - コミット: 必要な変更をステージングしたら、
cを押してコミットします。
これにより、git add -pのような複雑なコマンドを打つことなく、視覚的に変更を確認しながら精度の高いコミットが可能です。
2. コミットログの検索と差分確認
過去のコミット履歴から特定の変更を探したり、コミットの内容を確認したりする作業は、デバッグや機能調査で頻繁に発生します。gituiのログビューは非常に強力です。
シナリオ: 特定のバグが導入されたコミットを探したい、または特定の機能がいつ実装されたか確認したい場合。
- Logタブへ移動:
4キーを押してLogタブに移動します。 - コミット履歴の閲覧:
j/kでコミット履歴をスクロールします。右ペインには、選択したコミットの差分が表示されます。 - コミットの検索:
/キーを押すと、コミットメッセージや作者、コミットハッシュなどを検索できます。検索クエリを入力後enterを押すと、一致するコミットがハイライトされます。nで次の検索結果へ、Nで前の検索結果へ移動します。 - 詳細な差分表示: 選択したコミットで
enterを押すと、そのコミットの詳細な差分が全画面で表示されます。
膨大なコミットの中から目的の情報を素早く見つけ出し、内容を確認できるため、調査時間を大幅に短縮できます。
3. スタッシュの活用と管理
作業途中で別のブランチに切り替える必要があるが、現在の変更はまだコミットしたくない。そんな時に便利なのがスタッシュです。gituiを使えば、スタッシュの作成から管理までを直感的に行えます。
シナリオ: 現在の作業を一時中断し、緊急のバグ修正を別のブランチで行う必要がある場合。
- Stashタブへ移動:
5キーを押してStashタブに移動します。 - スタッシュの保存:
sキーを押すと、現在の変更をスタッシュとして保存します。スタッシュメッセージを入力するプロンプトが表示されるので、内容が分かりやすいメッセージを入力します。 - スタッシュの確認: スタッシュされた変更がリストに表示されます。
j/kでスタッシュを選択すると、右ペインにそのスタッシュに含まれる変更の差分が表示されます。 - スタッシュの適用/ポップ: 選択したスタッシュで
pキーを押すと、スタッシュの内容を現在のブランチに「ポップ」(適用し、スタッシュリストから削除)します。aキーを押すと「適用」(適用するが、スタッシュリストには残す)します。 - スタッシュの削除: 選択したスタッシュで
dキーを押すと、そのスタッシュを削除できます。
gituiはスタッシュの操作を視覚的に分かりやすくし、誤って重要な変更を失うリスクを減らします。
他ツールとの組み合わせ
gituiは単体でも強力ですが、他のツールと組み合わせることで、さらにその真価を発揮します。
通常のGitコマンド (git shell) との併用
gituiはGitの主要な操作をカバーしますが、すべてのGitコマンドを代替するわけではありません。例えば、複雑なリベース操作や、特定の参照ログの確認など、gituiで直接サポートされていない機能もあります。
このような場合、gituiを終了して通常のgitコマンドを使用します。gituiはあくまで「ターミナル内でGUI的な快適さを提供する」ツールであり、従来のgitコマンドと併用することで、より柔軟なワークフローを構築できます。
エディタとの連携
gitui内でコミットメッセージを作成する際、デフォルトでは組み込みのシンプルなエディタが使われます。しかし、より高機能なエディタを使いたい場合は、EDITOR環境変数を設定することで、お好みのエディタを呼び出せます。
例えば、VS Codeをターミナルから呼び出すように設定している場合:
export EDITOR="code --wait"
またはVimを使う場合:
export EDITOR="vim"
この設定を~/.bashrcや~/.zshrcなどのシェル設定ファイルに記述しておけば、gituiからコミットメッセージ作成時に指定したエディタが起動します。
ターミナルマルチプレクサ (tmux, screen)
tmuxやscreenのようなターミナルマルチプレクサを使用すると、複数のターミナルセッションを管理できます。これにより、gituiと他のCLIツール(例えば、コードエディタやテスト実行ツール)を並行して使用するワークフローが構築できます。
例えば、tmuxのペインを分割し、片方でgituiを起動してステージングやコミットを行い、もう片方でコードを編集するといった使い方が可能です。
# tmuxを起動し、ペインを分割
tmux new -s dev_session
# 左ペインでコード編集
# 右ペインでgituiを起動
gitui
このように、gituiは既存のCLIツール群とシームレスに連携し、開発者の生産性を高めます。
よくある設定・カスタマイズ
gituiは、キーバインドやカラーテーマなど、様々な項目をカスタマイズできます。自分好みの環境を構築することで、さらに快適な操作感を実現しましょう。
設定ファイルは通常、以下のディレクトリに配置されます。
- macOS/Linux:
~/.config/gitui/ - Windows:
C:\Users\<ユーザー名>\AppData\Roaming\gitui\
キーバインドのカスタマイズ
gituiは、デフォルトでvimライクなキーバインドを提供しています。しかし、さらに細かくカスタマイズしたい場合は、key_bindings.ronファイルを編集します。
例えば、公式GitHubリポジトリには、vim_style_key_config.ronというVim風のキーバインド設定の例があります。これを~/.config/gitui/key_bindings.ronとしてコピーし、必要に応じて編集します。
# 設定ディレクトリが存在しない場合は作成
mkdir -p ~/.config/gitui/
# GitHubからvim_style_key_config.ronをダウンロードして配置
# (例: curlコマンドを使用)
curl -o ~/.config/gitui/key_bindings.ron https://raw.githubusercontent.com/gitui-org/gitui/main/vim_style_key_config.ron
key_bindings.ronはRON (Rusty Object Notation) 形式で記述されており、各アクションに割り当てるキーを設定できます。
// ~/.config/gitui/key_bindings.ron の例 (一部抜粋)
(
tab_status: "1",
tab_log: "4",
tab_branches: "5",
tab_stashing: "6",
tab_stashes: "7",
tab_toggle: "tab",
focus_left: "h",
focus_right: "l",
focus_up: "k",
focus_down: "j",
page_up: "page_up",
page_down: "page_down",
// ...その他多数
)
このファイルを編集することで、例えばタブ切り替えを[と]に割り当てたり、特定の操作を好みのキーに変更したりできます。
カラーテーマのカスタマイズ
gituiの見た目はtheme.ronファイルを編集することで変更できます。フォントの色や背景色など、各UI要素の色を設定可能です。
# 設定ディレクトリにデフォルトテーマファイルをコピーして編集を開始
cp /path/to/gitui/default_theme.ron ~/.config/gitui/theme.ron
# (デフォルトテーマファイルの正確なパスはgituiのバージョンやインストール方法により異なる場合があります)
theme.ronもRON形式で記述されており、RGB値やプリセットカラー名を使って色を指定します。
// ~/.config/gitui/theme.ron の例 (一部抜粋)
(
background: (25, 25, 25),
text: (200, 200, 200),
// ...
selection_bg: (50, 50, 50),
selection_fg: (255, 255, 255),
// ...
)
これらのカスタマイズを活用することで、あなたの開発環境に完全にフィットするgituiを構築できます。
今日からできる実行プラン
gituiの導入は、あなたのGitワークフローを大きく改善する可能性を秘めています。以下の3ステップで、今日からgituiを使い始めてみましょう。
ステップ1: gituiをインストールする
まずは、本記事の「インストール方法」セクションを参考に、お使いのOSにgituiをインストールします。
# 例: macOSの場合
brew install gitui
インストールが完了したら、正しくインストールされたか確認するためにgitui --versionを実行してみましょう。
ステップ2: 既存のリポジトリで試す
普段作業しているGitリポジトリに移動し、gituiコマンドを実行します。
cd ~/my_project
gitui
Statusタブが表示されたら、以下の基本的な操作を試してみてください。
j/kでファイルを選択enterでファイルをステージング/アンステージscでステージング済みファイルにフォーカスを切り替えるcでコミットメッセージ入力画面を開く?でヘルプを表示
これらの操作に慣れることが、gituiを使いこなす第一歩です。デモGIFを参考にしながら、手を動かしてみましょう。
ステップ3: 日常のワークフローに組み込む
基本的な操作に慣れてきたら、普段のGitワークフローに少しずつgituiを組み込んでみましょう。
- まずはコミットワークフローから: 変更の確認、ステージング、コミットメッセージの作成・実行をgituiで行うことから始めるのがおすすめです。この部分だけでも、手動でコマンドを打つよりも格段に効率的になります。
- ログ確認に活用: 過去のコミット履歴を検索したり、差分を確認したりする際に
gituiのLogタブを使ってみましょう。 - 必要に応じてコマンドと併用: gituiで難しい操作や、より複雑なコマンドが必要な場合は、躊躇せず
qで終了し、通常のgitコマンドを使用してください。両者を併用することで、柔軟かつ効率的なGitワークフローが構築できます。
gituiは「学習コストが低く、すぐに生産性を向上できる」ツールです。ぜひ今日からあなたの開発環境に取り入れ、快適なGitライフを体験してください。
参考文献
- Gitui is a blazing fast terminal git interface
- GitUI Might Be the Terminal Git Client Rust Developers Secretly Wanted