メインコンテンツへスキップ

lazygit入門 — インストールから基本操作・おすすめ設定まで

Toolsbase編集部
lazygitGitターミナルTUI開発環境

lazygit は、ターミナル上で動作するGitクライアント(TUI)です。Go言語で実装されており、ステージング・コミット・ブランチ操作・対話的リベースといったGit操作を、コマンドを打たずキーボードだけで実行できます。GitHubで60,000以上のスターを獲得している人気ツールです。

この記事では、lazygitを「インストール → 画面の読み方 → 基本フロー → 実用パターン → おすすめ設定」の順で解説します。キー・設定の記述は、当サイトの lazygitキーバインド・コマンド一覧(v0.63.x・144項目)の検証済みデータに基づいています。

個々のキーの詳しい説明・設定例が必要なときは、上記のリファレンスを併用してください。本記事は lazygit v0.63.x(2026年7月時点)の情報に基づいています。

1. lazygitとは — ターミナルGit UIの利点

git add -p で行を選び、git rebase -i でエディタを開き、git stash pop の前に git stash list で番号を確認する——素のgitコマンドでは数手かかる操作を、lazygitは1〜2キーに圧縮します。

  • ステージングが速い: ファイルを選んで space を押すだけ。行単位の部分ステージングもキーボードで完結
  • 履歴の書き換えが怖くない: squash・fixup・rewordが1キー。間違えても z で直前のgit操作を取り消せる
  • 状態が常に見える: ファイル・ブランチ・コミット・スタッシュが1画面に並び、差分は右ペインに即表示
  • gitの学習にもなる: @ のコマンドログで、各操作が実際にどのgitコマンドを実行したか確認できる

「GUIクライアントは重い、でも素のコマンドは打つのが面倒」という層にちょうどよく、ターミナルから離れずにGit操作を完結できます。

2. インストール

主要な環境でのインストール方法です。

# macOS / Linux(Homebrew)
brew install lazygit

# Windows(winget / Scoop)
winget install -e --id=JesseDuffield.lazygit
scoop bucket add extras && scoop install lazygit

# Arch Linux
sudo pacman -S lazygit

# Debian 13+ / Ubuntu 25.10+
sudo apt install lazygit

# Go環境がある場合
go install github.com/jesseduffield/lazygit@latest

FedoraはCOPR(dnf copr enable dejan/lazygit)経由、その他の環境はバイナリリリースも利用できます。インストール後、gitリポジトリの中で lazygit を実行すれば起動します。

毎回 lazygit と打つのは長いので、最初にエイリアスを設定しておくのが定番です。

echo "alias lg='lazygit'" >> ~/.zshrc && source ~/.zshrc

3. 画面構成 — 5パネルの読み方

起動すると、左側に5つのパネル、右側に大きなメインビュー(差分などの詳細表示)が並びます。

パネル 役割
Status リポジトリ名・現在のブランチなどの状態表示
Files ワーキングツリーの変更ファイル一覧。ステージングとコミットの起点
Branches ローカルブランチ・リモート・タグ(タブで切替)
Commits コミット履歴。リベースやcherry-pickの起点
Stash スタッシュ一覧

移動に使うキーはこれだけです。

キー 動作
h / l 左右のパネルに移動(矢印キーでも可)
j / k リスト内を上下に移動(矢印キーでも可)
[ / ] パネル内のタブを切り替え
enter 選択項目を掘り下げる
esc キャンセルして前の画面・パネルに戻る
0 メインビュー(差分表示)にフォーカス
? 現在のパネルで使えるキー一覧を表示

lazygitを理解する上でいちばん大事なのは、同じキーでもフォーカス中のパネルによって意味が変わることです。例えば d は、Filesパネルでは「変更の破棄オプション」、Commitsパネルでは「コミットの削除(drop)」、Stashパネルでは「スタッシュの削除」になります。迷ったら ? を押せば、いま押せるキーの一覧が出ます。

4. 基本操作フロー — stage → commit → push を3キーで

日常のGit操作は、Filesパネルの3キーで回ります。

  1. space — 選択ファイルのステージ/アンステージを切り替え(全ファイルまとめては a
  2. c — ステージ済みの変更をコミット。メッセージ入力画面が開く
  3. P(Shift+p) — 現在のブランチをupstreamにプッシュ。未設定なら設定を促される

これに加えて、次の4つを覚えれば基本操作はほぼカバーできます。

キー(Filesパネル) 動作
p リモートの変更をプル
A 直前のコミットにステージ済みの変更を追加(git commit --amend
d 選択ファイルの変更を破棄するオプションを表示
z 直前のgit操作を取り消し(reflogベース。コミット操作が対象で、ワーキングツリーの変更は対象外)

z のundoは「間違えてdropした」「間違えてsquashした」というコミット操作のやり直しに効きます。取り消しすぎたら Z でredoできます。

5. よく使う操作パターン

ここからは、素のgitコマンドだと億劫な操作がlazygitでどう変わるかを、パターン別に見ていきます。

5-1. 行単位ステージング(部分コミット)

「このファイルの変更のうち、この行だけコミットしたい」という場面です。

  1. Filesパネルでファイルを選んで enter — 行単位ステージング画面が開く
  2. space — 選択した行/hunkのステージを切り替え(a で行単位/hunk単位の選択モード切替)
  3. v — 範囲選択モード。複数行をまとめてステージ
  4. tab — staged / unstaged ビューを切り替え
  5. そのまま c でコミット、esc でFilesパネルに戻る

git add -p のe(手動編集)に相当する操作は E(選択hunkを外部エディタで編集)です。

5-2. 対話的リベース(squash / fixup / reword)

Commitsパネルに移ると、コミット履歴の編集が1キーずつになります。

キー(Commitsパネル) 動作
i ブランチのコミットに対して対話的リベースを開始
s 選択コミットを直下のコミットにsquash(メッセージは結合)
f 選択コミットを直下に統合(fixup。選択コミットのメッセージは破棄)
r コミットメッセージを書き換え(reword)
d 選択コミットを削除(drop)
e 選択コミットから対話的リベースを開始(編集対象としてマーク)
ctrl+j / ctrl+k 選択コミットを1つ下/上に移動

git rebase -i のようにエディタでpick/squashを書き換える必要はなく、コミットを選んでキーを押すだけです。進行中のリベースの中断・続行は m から選べます。

レビュー指摘の修正を積む運用なら、F で選択コミットに対する「fixup!」コミットを作成しておき、最後に S でまとめて適用(autosquash)する流れが便利です。

5-3. スタッシュ

作業を一時退避するときは、Filesパネルで s(全ての変更をスタッシュ)。ステージ済みのみ・未ステージのみを退避したい場合は S でオプションを選びます。

戻すときはStashパネルで操作します。

キー(Stashパネル) 動作
space スタッシュを適用(エントリは残る = apply)
g スタッシュを適用してエントリを削除(pop)
d スタッシュエントリを削除(drop)
n スタッシュから新しいブランチを作成
enter スタッシュに含まれるファイル一覧を表示

git stash list で番号を調べて git stash pop stash@{2} と打つ操作が、一覧から選んで1キーになります。

5-4. cherry-pick

  1. Commitsパネル(またはブランチの enter で開いたコミット一覧)で、持ってきたいコミットを C でコピー
  2. Branchesパネルで対象ブランチに space でチェックアウト
  3. Commitsパネルに戻り V でペースト(cherry-pick実行)

選択を解除したいときは ctrl+r です。

5-5. コンフリクト解消

マージやリベースでコンフリクトが起きたら、Filesパネルでコンフリクトしたファイルを選んで enter を押すと解決画面が開きます。

キー(解決画面) 動作
space 選択したhunk(自分側/相手側)を採用
b 両方の変更のhunkを採用
z 直前のコンフリクト解決を取り消し

コンフリクト全体の解決オプションは M、マージ/リベース自体の中断・続行は m から選べます。

5-6. ブランチ操作

キー(Branchesパネル) 動作
space 選択ブランチをチェックアウト
n 選択ブランチを起点に新しいブランチを作成
N 未プッシュのコミットを新しいブランチに移動
- 直前にチェックアウトしていたブランチに切り替え
M 選択ブランチを現在のブランチにマージ
r チェックアウト中のブランチを選択ブランチにリベース
o 選択ブランチのプルリクエストを作成

N は「ブランチを切り忘れてmainにコミットしてしまった」ときの救済キーです。素のgitだと git branchgit reset --hard の2段構えになる操作が1キーで済みます。

6. おすすめ設定(config.yml)

設定ファイルの場所は lazygit --print-config-dir で確認できます(macOS: ~/Library/Application Support/lazygit/config.yml、Linux: ~/.config/lazygit/config.yml、Windows: %LOCALAPPDATA%\lazygit\config.yml)。lazygit内から alt+shift+c で直接開くこともできます。

導入直後に効く設定を3つ挙げます。

UIの日本語化。デフォルトの auto でもOSが日本語設定なら日本語表示になりますが、明示するなら次の通りです。

gui:
  language: 'ja'

deltaで差分をシンタックスハイライトdeltaをインストールした上で、外部ページャーとして指定します。

git:
  paging:
    colorArg: always
    pager: delta --dark --paging=never

外部エディタの指定e キーでファイルを開くときのエディタを指定します(未設定でも git config core.editor$EDITOR から自動推測されます)。

os:
  editPreset: 'vscode'

このほか、Nerd Fontsのアイコン表示(gui.nerdFontsVersion: "3")、キーバインドの変更(keybinding)、独自コマンドのキー割り当て(customCommands)などもconfig.ymlで設定できます。設定例はリファレンスの「設定・カスタマイズ」カテゴリにまとめてあります。

よくある質問

Vimのキー操作(h/j/k/l)に慣れていなくても使えますか?

使えます。パネル間の移動(h / l)もリスト内の移動(j / k)も矢印キーで代替できます。まず spacecP の3キーだけ覚えれば日常操作は回り、残りは ? のヘルプで都度確認できます。

操作を間違えたときは取り消せますか?

z で直前のgit操作を取り消せます。reflogを使った取り消しで、コミット操作が対象です(ワーキングツリーの変更自体は対象外)。取り消しすぎた場合は Z でやり直せます。

lazygitの中から素のgitコマンドを実行できますか?

: で任意のシェルコマンドを入力して実行できます。また @ のコマンドログを見ると、lazygitの各操作が実際にどのgitコマンドを実行したかを確認できるので、TUI操作とgitコマンドの対応を学ぶ教材にもなります。

VS Codeなどのエディタと併用できますか?

Filesパネルで e を押すと選択ファイルを外部エディタで開けます。使うエディタは config.yml の os.editPreset(vscode / vim / nvim など)で指定します。

この記事はどのバージョンに対応していますか?

lazygit v0.63.x(2026年7月時点)です。キー・設定の記述は、lazygitキーバインド・コマンド一覧と同じ検証済みデータ(公式のKeybindings_en.md・Config.md・ソースコード)に基づいています。

まとめ

  • lazygitはターミナルで完結するGitクライアント。まずFilesパネルの space(ステージ)→ c(コミット)→ P(プッシュ) の3キーから
  • 設計の肝は「同じキーでもパネルごとに意味が変わる」こと。迷ったら ? でフォーカス中パネルのキー一覧を確認
  • 対話的リベース・stash・cherry-pick・コンフリクト解消は、素のコマンドより大幅に少ない手数で実行できる。間違えても z で取り消し可能
  • config.ymlで日本語化・delta連携・エディタ連携まで整えると、常用ツールとして定着する

キーバインドの全一覧・詳しい説明・設定例は、検証済みデータでメンテナンスしている以下のリファレンスを参照してください。