Boost Your Dev Workflow: A Lazygit Implementation Guide 2025
Tired of complex Git commands? Our 2025 guide shows you how to install, use, and master Lazygit to supercharge your development workflow. Get faster today!
Alex Porter
Senior Software Engineer passionate about optimizing developer workflows and tooling.
Let’s be honest. We all love Git—it’s the backbone of modern software development. But how much time do you spend wrestling with its command-line interface? Juggling branch names, trying to remember the syntax for an interactive rebase, or just getting a clear picture of your project’s state can feel like a chore. It’s a constant context switch that pulls you out of your coding flow.
What if you could get all the power of Git, with a visual interface, without ever leaving your terminal? That’s the magic of Lazygit. It’s a simple, terminal-based UI for Git that transforms your workflow from a series of memorized commands into an intuitive, interactive experience. It’s about making common Git tasks so fast and easy they become muscle memory, letting you focus on what you do best: writing code.
In this 2025 guide, we’ll dive deep into Lazygit. We'll cover everything from a frictionless installation to mastering the core workflows that will save you hours each week. Whether you're a Git novice or a seasoned pro, get ready to supercharge your productivity.
What is Lazygit (and Why Should You Care)?
Lazygit, created by Jesse Duffield, isn't a replacement for Git. It's a powerful wrapper—a Terminal User Interface (TUI)—that sits on top of it. Written in Go, it's incredibly fast and responsive. Its purpose is to take the most common (and sometimes complex) Git operations and make them accessible through single-key commands in a clear, multi-panel layout.
So, why should you care? The primary benefits are:
- Speed: Staging files, committing, pushing, pulling, and creating branches are all single-keystroke actions.
- Context: You see your staged files, commit history, branches, and stash all in one place. No more `git status`, `git log`, `git branch -a` in separate commands.
- Simplicity for Complex Tasks: Operations like interactive rebasing, cherry-picking, or staging individual lines become trivially easy and visual.
- Reduced Cognitive Load: You don't need to memorize dozens of command flags. The available actions are always visible on screen.
It's the perfect middle-ground for developers who love their terminal but crave the visual clarity of a GUI.
Installation for 2025
Getting Lazygit installed is a breeze across all major operating systems. Just open your terminal and run the command for your system. To start it, simply navigate to any git repository in your terminal and run the command lazygit
.
macOS (using Homebrew)
brew install lazygit
Windows (using Winget or Scoop)
# Using Winget (recommended)
winget install JesseDuffield.lazygit
# Or using Scoop
scoop install lazygit
Linux
Installation varies by distribution, but here are the most common methods.
# Debian/Ubuntu (using the official PPA)
sudo add-apt-repository ppa:lazygit-team/release
sudo apt-get update
sudo apt-get install lazygit
# Arch Linux
sudo pacman -S lazygit
# Fedora
sudo dnf copr enable atim/lazygit -y
sudo dnf install lazygit
After installation, verify it's working by running lazygit --version
. You're now ready to go!
First Look: Navigating the Lazygit UI
When you first run lazygit
inside a repo, you'll see a screen divided into several panels. Don't be intimidated; it's very logical.

- Status: Shows your current branch, recent commits, and upstream status.
- Files: Your working tree. This is where you'll see new, modified, and untracked files.
- Branches: All your local and remote branches.
- Commits: The log history for the selected branch.
- Stash: Your list of stashed changes.
Navigation is Vim-like but intuitive. Use the arrow keys or h/j/k/l
to move up and down within a panel and switch between panels. The most important thing to remember is that the available commands for your current context are always listed in the bottom-left of the screen. Pressing x
brings up a menu of all possible commands.
The Core Workflow: A Day in the Life with Lazygit
Let's walk through a typical development cycle to see how fluid it becomes.
Step 1: Staging Files
You've made some changes to your code. In the Files panel, you'll see your modified files. Navigate to a file you want to stage and press the spacebar
. It will turn green and move to the staged files section. That's it.
Want to stage only a specific part of a file? This is where Lazygit shines. Highlight the file and press enter
. You'll see a diff view of the changes. You can navigate hunk by hunk (or line by line by pressing enter
again) and press spacebar
to stage just that specific piece. This makes crafting perfect, atomic commits incredibly easy.
Step 2: Committing
Once your files are staged, press c
. Your default terminal editor will pop up for you to write your commit message. Save and close the file, and your commit is made. Simple.
Step 3: Branching and Checking Out
Need a new feature branch? Switch to the Branches panel (using arrow keys). Press n
, type the name of your new branch, and hit enter. You've just created and checked out a new branch. To switch to an existing branch, just navigate to it in the list and press spacebar
.
Step 4: Pulling and Pushing
Ready to share your work? Press p
to pull the latest changes from the remote (rebase by default, configurable). Then press P
(uppercase) to push your changes to the remote branch. Lazygit even handles setting the upstream for you on the first push.
Advanced Moves: Unlocking Superpowers
Lazygit makes even the scariest Git operations feel safe and straightforward.
Interactive Rebase Made Easy
This is a killer feature. Go to the Commits panel. Navigate to the commit you want to start the rebase from and press e
. A new view opens with your commits. Now you can:
- Move commits up and down with
j
/k
. - Squash a commit into the one below it with
s
. - Rename a commit with
r
. - Pick, drop, or edit commits with single keystrokes.
You have full visual feedback, and it's much harder to mess up than with the command line.
Cherry-Picking
Need to grab a single commit from another branch? Easy. Go to the Branches panel, select the branch containing the commit, and view its log. Navigate to the desired commit in its history and press C
(uppercase). That commit is now cherry-picked onto your current branch.
Customizing Lazygit for Your Perfect Setup
Lazygit is highly customizable. You can open its configuration by pressing o
inside the app. This will open your config.yml
file. Here are a few popular tweaks:
# ~/.config/lazygit/config.yml
gui:
# You can change the theme here
theme:
activeBorderColor:
- '#89b4fa' # A nice blue color for active panels
- bold
selectedLineBgColor:
- '#313244' # A darker background for the selected line
# Example of a custom command to open the repo in your browser
customCommands:
- key: 'O' # Uppercase 'o'
command: 'gh repo view --web'
context: 'global'
description: 'Open repo in browser (requires gh cli)'
With custom commands, you can integrate Lazygit with other tools like the GitHub CLI (gh
) to create a truly seamless workflow.
Lazygit vs. Git CLI vs. GUI Clients
Where does Lazygit fit in the ecosystem? Here's a quick comparison:
Feature | Git CLI | Lazygit (TUI) | Full GUI (e.g., Sourcetree) |
---|---|---|---|
Speed | Fast for experts, slow for complex tasks | Extremely fast for common tasks | Slower, requires mouse/clicking |
Context Switching | High (multiple commands needed) | None (stays in terminal) | High (separate application) |
Visual Feedback | Minimal | Excellent, real-time feedback | Excellent, most visual |
Learnability | Steep learning curve | Moderate, intuitive keybindings | Easiest for absolute beginners |
Resource Usage | Very Low | Very Low | High (it's a full app) |
Conclusion: Is Lazygit Right for You?
If you're a developer who spends most of your day in the terminal, the answer is almost certainly yes. Lazygit doesn't try to hide Git from you; it empowers you to use Git more effectively. It strikes the perfect balance between the raw power of the command line and the visual safety net of a GUI.
By making staging, committing, and especially complex operations like interactive rebasing fast and visual, Lazygit helps you maintain better Git hygiene with well-crafted, atomic commits. It keeps you in the flow, reduces mental overhead, and ultimately, makes you a faster, more efficient developer.
Give it a try for one week. I'm willing to bet you won't want to go back.