lazygitの使い方完全ガイド【インストールから応用まで】
Gitは、現代のソフトウェア開発に不可欠なバージョン管理システムです。しかし、その強力さゆえに、コマンドラインでの操作は時に複雑で手間がかかります。
例えば、複数の変更を細かくステージングしたい場合を想像してみてください。git add -p コマンドを使って変更を一つずつ確認し、yやn、sなどを何度も入力するのは骨の折れる作業です。時には、意図しない変更までステージしてしまうリスクもあります。
また、過去のコミットを整理するインタラクティブなリベースは、エディタでTODOファイルを直接編集する必要があります。コミットの順番を入れ替えたり、複数のコミットを一つにまとめたりするたびに、慎重な操作が求められます。
もし、これらのGit操作を、すべてターミナル上で視覚的に、かつ直感的に行えるツールがあったらどうでしょうか。マウスを使うことなく、キーボード操作だけでGitのパワーを最大限に引き出せる世界。
そんな開発者の夢を叶えるのが、今回ご紹介するCLIツール「lazygit」です。
lazygitとは
lazygitは、Git操作をターミナル上で完結させるためのTUI(Text User Interface)ツールです。CLIツールでありながら、GUIツールのような直感的な操作感を提供します。
開発者であるJesse Duffield氏は、既存のGitコマンドが持つ「パワフルだが、使いにくい」という側面に対して不満を抱いていました。特に、インタラクティブなリベースや、ファイルの一部だけをステージングする際の煩雑さが、その開発の背景にあります。
lazygitは、この不満を解消するために生まれました。複雑なGitコマンドを覚える必要なく、キーボード操作だけでステージ、コミット、リベースといった主要なGitワークフローを実行できます。これにより、開発者はGitの学習コストを下げつつ、より迅速に作業を進められます。
視覚的に変更点を確認し、ブランチを切り替え、コミット履歴をたどる。これらの操作を、ターミナル画面から離れることなく行えるのがlazygitの大きな魅力です。
インストール方法
lazygitは様々なOSに対応しており、それぞれの環境に合わせて簡単にインストールできます。
macOSの場合
macOSでは、Homebrewを使って簡単にlazygitをインストールできます。
brew install lazygit
Linuxの場合
Linuxでは、ディストリビューションによっていくつかのインストール方法があります。
Homebrew (Linuxbrew) を利用する場合
LinuxでもHomebrew (Linuxbrew) を利用している場合は、macOSと同様にインストールできます。
brew install lazygit
Arch Linuxの場合
Arch Linuxでは、公式リポジトリからインストールできます。
sudo pacman -S lazygit
Fedora / Amazon Linux 2023 / CentOS Streamの場合
FedoraやRHEL系のディストリビューションでは、DNFを使ってインストールできます。
sudo dnf install lazygit
その他のLinuxディストリビューションの場合
より汎用的な方法として、gahというパッケージマネージャーを使用したり、GitHub Releasesから直接バイナリをダウンロードしてパスを通す方法もあります。
例えば、gahを使用する場合:
curl -sfL https://raw.githubusercontent.com/jesseduffield/gah/master/install.sh | sh
gah install lazygit
Windowsの場合
Windowsでは、Scoopパッケージマネージャーを使ってインストールするのが一般的です。
scoop install lazygit
Scoopがインストールされていない場合は、GitHub Releasesページから直接実行ファイルをダウンロードし、適切なパスに配置して使用することも可能です。
基本的な使い方
lazygitの使い方は非常にシンプルです。まずは、最低限これだけ知っていればGit操作ができるコマンドを覚えましょう。
lazygitの起動
Gitリポジトリのルートディレクトリで以下のコマンドを実行すると、lazygitが起動します。
lazygit
画面がいくつかのパネルに分割されて表示されます。左上から「Status」「Files」「Branches」「Commits」「Stash」などのパネルがあります。
ステージングとアンステージング
Filesパネルには、変更されたファイルが表示されます。
ファイル全体をステージする:
Filesパネルで対象のファイルを選択し、sキーを押します。選択したファイルがステージングエリアに追加されます。ファイル全体をアンステージする:
Filesパネルでステージ済みのファイル(緑色で表示)を選択し、sキーを押します。ステージングエリアからファイルが削除されます。変更の一部をステージする (Hunk単位):
Filesパネルで対象のファイルを選択し、spaceキーを押します。すると、そのファイル内の変更差分(Hunk)が表示される別のビューに切り替わります。 このビューで、ステージしたいHunkを選択し、再度spaceキーを押すと、そのHunkだけがステージされます。もしHunkをさらに細かく分割したい場合は、
zキーを押すことで行単位のステージングモードに入れます。行を選択し、spaceでステージします。
コミットの作成
変更をステージングしたら、コミットを作成します。
- コミットを作成する:
Statusパネルで「commit」という表示があることを確認します。cキーを押すと、コミットメッセージを入力するエディタが開きます。メッセージを入力して保存・終了すると、コミットが作成されます。
プッシュとプル
リモートリポジトリとの同期も簡単です。
変更をプッシュする:
Pキーを押します。すると、プッシュオプションのメニューが表示されます。pを選択すると、現在のブランチの変更がリモートにプッシュされます。変更をプルする:
pキーを押します。すると、プルオプションのメニューが表示されます。pを選択すると、リモートの変更がローカルにプルされます。
ブランチの切り替え
ブランチ間の移動も直感的に行えます。
- ブランチを切り替える:
Branchesパネルに移動し、切り替えたいブランチを選択してspaceキーまたはenterキーを押します。
これらの基本的な操作を覚えるだけで、lazygitを使ったGitワークフローが格段に快適になります。
便利な使い方・応用例 3選
lazygitは、基本的なGit操作だけでなく、より高度な操作も視覚的にサポートします。ここでは、実際の開発シーンで役立つ応用例を3つ紹介します。
1. インタラクティブなリベースをTUIで完結させる
Gitのインタラクティブなリベースは、コミット履歴を整理する強力な機能です。しかし、通常はエディタでTODOファイルを編集する必要があり、慣れないうちは戸惑うことも少なくありません。lazygitを使えば、この操作をTUI上で直感的に行えます。
例えば、直近の複数のコミットを整理したいとします。
Commitsパネルに移動します。- リベースの基点としたいコミット(それより新しいコミットを操作対象とする)を選択し、
rキーを押します。 すると、インタラクティブなリベースのメニューが表示され、対象となるコミットがリストアップされます。 - 各コミットに対して、以下のキーで操作を選択します。
p(pick): コミットをそのまま適用します。r(reword): コミットメッセージを編集します。e(edit): コミットの内容を編集します(git commit --amendのような操作)。s(squash): 直前のコミットと結合します。f(fixup): 直前のコミットと結合し、メッセージは破棄します。d(drop): コミットを削除します。
- 操作を設定したら、
wキーを押してリベースを開始します。 lazygitが自動的にリベースを実行し、衝突が発生した場合は解決を促します。
このように、キーボード操作だけでコミットの並べ替え、結合、編集、削除を視覚的に行えるため、リベースの敷居が大きく下がります。
2. コミットの修正と追加(Amend)
直前のコミットにファイルを追加し忘れたり、コミットメッセージを修正したい場合があります。git commit --amendコマンドは便利ですが、lazygitではさらに簡単です。
- 変更をステージします。
Commitsパネルで、修正したいコミット(通常は一番上のHEADコミット)を選択します。Aキーを押します。 すると、現在のステージングエリアの変更が選択したコミットに追加され、コミットメッセージを編集するエディタが開きます。メッセージを修正して保存・終了すると、コミットが修正されます。
もし、コミットメッセージだけを修正したい場合は、対象のコミットを選択してrキー(reword)を押します。エディタが開き、メッセージを修正できます。
3. コミットのチェリーピック
別のブランチにある特定のコミットだけを現在のブランチに取り込みたい場合、チェリーピックは非常に有効です。
Commitsパネルに移動します。- チェリーピックしたいコミットを選択し、
cキーを押します。 確認のプロンプトが表示されるので、yキーで確定します。 選択したコミットが現在のブランチに適用されます。
複数のコミットをまとめてチェリーピックしたい場合は、最初のコミットを選択してshift + cを押し、続けて他のコミットを選択してcを押します。最後にwキーで一括チェリーピックを実行します。
これらの機能は、Gitの複雑なワークフローをlazygitがいかにシンプルにするかを示す良い例です。
他ツールとの組み合わせ
lazygitは単体でも強力ですが、他のツールと組み合わせることで、さらに開発体験を向上させることができます。
1. ターミナルエミュレータ (Warpなど)
lazygitはTUIツールであるため、快適なターミナルエミュレータと組み合わせることが重要です。公式READMEでも言及されている「Warp」のようなインテリジェントターミナルは、lazygitとの相性が良いでしょう。
Warpは、コマンドの自動補完や入力の提案、複数カーソル編集など、開発者向けの高度な機能を提供します。lazygitの素早いキーボード操作と組み合わせることで、ターミナルでの作業効率がさらに高まります。
2. エディタ (Vim/Neovim, VS Codeなど)
lazygitは、コミットメッセージの編集や、e (edit) コマンドを使ったコミット内容の修正時に、デフォルトのエディタを起動します。普段使い慣れたエディタを設定しておくことで、シームレスな連携が可能です。
例えば、~/.gitconfigで以下のように設定すると、Vim/Neovimをデフォルトエディタとして使用できます。
[core]
editor = nvim
または、lazygitの設定ファイル (~/.config/lazygit/config.yml) で直接エディタを指定することも可能です。
gui:
editor:
program: nvim
args: ['-c', 'normal G']
これにより、lazygitからエディタへの切り替えがスムーズになり、より集中して作業に取り組めます。
3. シェルスクリプトとエイリアス
lazygitを特定の状況で自動的に起動するシェルスクリプトや、短いエイリアスを設定することで、利用頻度を高められます。
例えば、現在のリポジトリで lazydog (Gitログビューア)と lazygit を交互に使うエイリアスを設定する、といったことが考えられます。
# .bashrc または .zshrc などに記述
alias lg='lazygit'
alias gl='git log --all --decorate --oneline --graph' # lazygitのログビューとは別に、シンプルなログが必要な場合
これにより、lgと入力するだけでlazygitを起動できるようになります。
よくある設定・カスタマイズ
lazygitは、~/.config/lazygit/config.yml (Linux/macOS) またはプラットフォーム固有のパスにある設定ファイルを編集することで、細かくカスタマイズできます。
キーバインディングの変更
デフォルトのキーバインディングが手に馴染まない場合、自由にカスタマイズできます。例えば、コミットキーをcからkに変更したい場合を考えます。
keybindings:
commits:
commit: 'k' # デフォルトは 'c'
このように、keybindingsセクションの下に各パネルと操作のキーを記述します。
カラーテーマの変更
lazygitの見た目を好みに合わせて変更できます。組み込みのテーマを使用したり、独自の色を定義したりすることが可能です。
例えば、テーマをdraculaに変更したい場合:
gui:
theme:
activeBorderColor:
- green
- bold
inactiveBorderColor:
- white
optionsTextColor:
- blue
selectedLineBgColor:
- blue
cherryPickedCommitBgColor:
- cyan
cherryPickedCommitFgColor:
- black
unstagedChangesColor:
- red
stagedChangesColor:
- green
trackedFilesColor:
- green
untrackedFilesColor:
- red
defaultFgColor:
- white
defaultBgColor:
- black
searchingActiveBorderColor:
- yellow
より詳細な色の設定や、既存のテーマをベースにしたカスタマイズも可能です。
カスタムコマンドの追加
lazygitには、独自のシェルコマンドをメニューに追加できる機能があります。これにより、lazygitのインターフェースから直接、よく使うGitコマンドやスクリプトを実行できます。
例えば、現在のブランチをクリーンアップするカスタムコマンドを追加する場合:
customCommands:
- key: 'C' # 大文字のCをキーとして割り当てる
command: 'git clean -df'
context: 'files' # filesパネルで実行可能
loadingText: 'Cleaning files...'
description: 'Untrackedファイルを削除する'
この設定を追加すると、FilesパネルでCキーを押すだけでgit clean -dfが実行されます。
これらのカスタマイズを活用することで、lazygitを自分だけの最適なGitツールに育て上げられます。
今日からできる実行プラン
lazygitをあなたの開発ワークフローに取り入れるのは簡単です。以下の3つのステップで、今日からlazygitのある快適なGitライフを始めましょう。
インストールする: お使いのOSに合わせて、lazygitをインストールしてください。インストールコマンドは上記「インストール方法」セクションを参照してください。 インストールが完了したら、Gitリポジトリのディレクトリで
lazygitと入力し、起動してみましょう。基本的な操作を試す: まずは、既存のGitリポジトリ(または新しく作成したリポジトリ)で、lazygitの基本的な操作を試してください。
- ファイルを変更し、
Filesパネルでsキーを使ってステージングする。 cキーでコミットを作成する。Pキーでプッシュ、pキーでプルを試す。Branchesパネルでブランチを切り替える。 これらの操作に慣れることで、lazygitの直感的なインターフェースを体感できます。
- ファイルを変更し、
複雑なGitワークフローをlazygitで試す: 普段のGit操作で「これは面倒だな」「もっと簡単にできないかな」と感じていた操作を、lazygitで実行してみてください。
- 例えば、インタラクティブなリベースを
Commitsパネルでrキーを使って試す。 - ファイルの一部だけをステージしたいときに、
Filesパネルでファイルを選択し、spaceやzキーを使ってHunkや行単位でステージングする。 これらの体験を通じて、lazygitがGit操作の煩わしさをどのように解消してくれるかを実感できます。
- 例えば、インタラクティブなリベースを
lazygitは、一度使い始めると手放せなくなるツールです。ぜひ今日から、あなたの開発ワークフローにlazygitを取り入れてみてください。