Lazygit — это текстовый интерфейс для Git, который собирает статус, ветки, историю и диффы в одном окне терминала. Он не прячет Git и не подменяет его: каждое действие превращается в обычную команду, которую при желании можно повторить вручную. Для одних это способ разгрузить голову, для других — быстрый вход в Git без заучивания десятков ключей. Ниже — установка, рабочий цикл, настройка и разбор ситуаций, где lazygit действительно помогает.
Что такое lazygit и кому он нужен
Lazygit написан на Go и работает поверх уже установленного Git. Ему не нужен сервер, аккаунт или графическая сессия: достаточно SSH-подключения и нормального терминала. Инструмент удобен, когда нужно быстро просмотреть изменения, разложить правки по коммитам, переключить ветку или разрешить конфликт. Он не заменяет код-ревью и не отменяет понимание модели Git: без базовых понятий «индекс», «HEAD» и «ветка» интерфейс будет выглядеть набором кнопок.
Установка и первый запуск
В Debian и Ubuntu проще поставить свежий бинарник с официальных релизов. Сначала проверьте Git, затем скачайте архив, распакуйте и положите исполняемый файл в /usr/local/bin.
git --version
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
sudo tar xf lazygit.tar.gz -C /usr/local/bin lazygit
В Fedora и Arch установка короче: пакет уже собран мейнтейнерами. Проверить, что бинарник нашёлся в PATH, можно одной командой.
sudo dnf install lazygit
sudo pacman -S lazygit
command -v lazygit
lazygit --version
Запускается программа командой lazygit в корне репозитория. Первый экран кажется плотным: слева файлы и ветки, в центре дифф, справа коммиты и stash. Клавиша ? открывает полную шпаргалку, q выходит, x вызывает контекстное меню. Навигация — стрелками или hjkl, Enter открывает выбранный объект.
Базовый цикл работы
Пробел отмечает файл или отдельную строку как staged, c создаёт коммит, A дополняет последний, P отправляет изменения, p подтягивает их. В панели файлов Enter открывает дифф, где можно подготовить отдельные фрагменты (хунки) — ради этого многие и ставят lazygit. Ветки создаются через n, переключение — пробелом, слияние и rebase доступны из меню. Stash прячется за s, а список отложенного показывает, что именно вы убрали.
- Пробел — stage или unstage выбранного фрагмента.
- c — коммит, A — amend, P — push, p — pull.
- ? — помощь, q — выход, x — дополнительное меню.
- f — fetch, n — новая ветка, s — stash.
- i — интерактивный rebase в панели коммитов.
Удалённая работа и SSH
Lazygit не требует отдельного сервера: он работает там, где открыт терминал, и использует обычный SSH-доступ к remote. Если Git настроен на ключи, интерфейс вызывает те же команды, что и консоль. Если включена подпись коммитов, её настраивают в Git, а lazygit лишь покажет ошибку, когда ключ недоступен. Держите в голове, что сетевые операции выполняются синхронно и на медленном канале интерфейс может подтормаживать.
git remote -v
git config --get user.signingkey
ssh -T git@github.com
git fetch --all --prune
Настройка config.yml
Файл настроек лежит в ~/.config/lazygit/config.yml. Не пишите его с нуля: выполните lazygit —print-config и возьмите за основу актуальную схему. Практичный минимум — тема, иконки, автообновление и редактор.
gui:
nerdFontsVersion: "3"
showFileTree: true
git:
autoFetch: true
refresher:
refreshInterval: 10
os:
editPreset: vim
Если вместо иконок видны квадраты, уберите nerdFontsVersion или установите шрифт Nerd Font. Синтаксис YAML чувствителен к отступам: ошибка в пробелах не даст приложению стартовать. На слабой машине увеличьте refreshInterval, чтобы lazygit реже запускал git status. Конфиг удобно хранить в dotfiles и раскладывать симлинком. Отдельно проверьте сочетания клавиш: некоторые конфликтуют с tmux и оконным менеджером. Если клавиша не срабатывает, откройте шпаргалку и переопределите keybinding в том же файле.
Конфликты, rebase и stash
Конфликт merge или rebase виден прямо в диффе: выберите нужную сторону через меню и отметьте файл как resolved. Интерактивный rebase запускается клавишей i в панели коммитов, там же доступны squash, fixup и перестановка строк. Перед сложной операцией создайте страховочную ветку: git branch backup. Cherry-pick вызывается из панели коммитов, но требует чистого рабочего дерева.
Worktree и большие изменения
Если в проекте несколько веток разрабатываются параллельно, lazygit умеет работать с worktree: каждая копия каталога открывается в своём окне, а переключение контекста не требует stash. Для больших диффов включите дерево файлов и используйте диапазонное выделение строк клавишей v. Перед массовым stage проверьте, что не попали сгенерированные файлы: .gitignore и предпросмотр диффа всё ещё ваша ответственность.
Кому lazygit не подойдёт
Интерфейс рассчитан на пользователя, который уже понимает базовую модель Git. Для первого знакомства лучше подойдёт консоль: там видна связь команды и результата. В огромных монорепозиториях с сотнями тысяч файлов TUI может подтормаживать, а сложные хуки и подписи удобнее отлаживать в обычном терминале. Наконец, lazygit не заменяет графический клиент для сравнения изображений и бинарных файлов.
Диагностика и типичные ошибки
Если программа не стартует, проверьте git —version и lazygit —version, затем запустите бинарник по полному пути. Пустой экран обычно означает, что вы не в репозитории. Ошибки аутентификации при push относятся к Git и SSH, а не к интерфейсу: проверьте ssh -T git@github.com и адрес remote. Для сверки выполните git status вручную — lazygit показывает то же состояние, только нагляднее.
Отдельная частая проблема — устаревший Git в системе. Если команда не поддерживает нужную опцию, обновите Git из репозитория дистрибутива. И не запускайте два TUI-клиента в одном репозитории одновременно: они будут перетирать индекс и путать статус.
git status
git remote -v
ssh -T git@github.com
lazygit --version
Короткий чек-лист перед стартом
Перед первым запуском проверьте окружение, чтобы не тратить время на элементарные ошибки.
- Git установлен, заданы имя и почта автора.
- Вы понимаете, что такое индекс, HEAD и ветка.
- Доступ к remote работает по SSH-ключу.
- Конфиг сохранён в dotfiles и не содержит секретов.
Итог
Lazygit — не замена изучению Git, а ускоритель повседневных операций: просмотра диффов, точечного stage, коммитов и веток. Начните с четырёх клавиш — пробел, c, P и p, — остальное подтянется по мере необходимости. Держите конфиг в репозитории dotfiles, чтобы окружение переезжало между машинами без ручной настройки.