Git이 버거운 개발자를 위한 TUI 도구, Lazygit 정리

okorion·2026년 3월 9일
post-thumbnail

Git은 강력하다.
문제는 강력한 만큼 불편한 순간도 많다는 점이다.

브랜치를 옮기려는데 stash를 해야 할지 고민해야 하고, interactive rebase를 하려면 에디터에서 TODO 파일을 수정해야 하고, 파일 일부만 스테이징하려면 patch 단위로 씨름해야 한다. 익숙해지면 된다고 하지만, 실무에서는 “익숙함”보다 빠르고 덜 피곤한 워크플로우가 더 중요할 때가 많다.

이럴 때 쓸 만한 도구가 바로 Lazygit이다.
Lazygit은 Git 명령어를 터미널 UI(TUI) 형태로 다룰 수 있게 해주는 오픈소스 도구다.


Lazygit이란?

Lazygit은 Jesse Duffield가 만든 Git용 터미널 UI다.
CLI 자체를 대체한다기보다, 자주 쓰는 Git 작업을 더 직관적이고 빠르게 수행하게 해주는 인터페이스라고 보는 편이 정확하다.

공식 설명도 간단하다.

A simple terminal UI for git commands

즉, Git 명령을 감싸는 가벼운 UI 계층이다.
복잡한 Git 작업을 에디터, patch 파일, 긴 명령어 없이 더 쉽게 처리하도록 돕는다.


왜 Lazygit이 필요한가

Git의 문제는 기능 부족이 아니라 사용 경험이다.

예를 들면 이런 순간들이다.

  • interactive rebase를 위해 TODO 파일을 직접 수정해야 할 때
  • hunk 단위도 부족해서 line 단위로 스테이징하고 싶을 때
  • 브랜치 전환 전에 stash를 해야 하나 고민될 때
  • 특정 커밋을 squash, fixup, amend 해야 할 때
  • 여러 브랜치와 커밋 관계를 한눈에 보고 싶을 때

Git CLI는 강력하지만, 중간중간 작업 흐름을 끊는다.
Lazygit은 이 부분을 줄여준다.

핵심은 하나다.

Git의 기능은 그대로 두고, 조작 비용만 낮춘다.


Lazygit의 핵심 기능

README 기준으로 눈에 띄는 기능만 추려보면 다음과 같다.

1. 라인 단위 스테이징

보통 git add -p는 hunk 단위 중심이다.
하지만 Lazygit은 개별 line 선택 스테이징이 가능하다.

  • space: 현재 라인 스테이징
  • v: 범위 선택
  • a: 현재 hunk 전체 선택

실무에서 “한 파일 안의 일부 변경만 커밋하고 싶다”는 상황이 자주 나오는데, 이때 꽤 유용하다.


2. Interactive Rebase

Lazygit의 강점 중 하나다.

  • i로 interactive rebase 시작
  • s: squash
  • f: fixup
  • d: drop
  • e: edit
  • ctrl+k / ctrl+j: 순서 이동

즉, rebase TODO 파일을 직접 열어 수정하는 대신 UI에서 바로 조작할 수 있다.

Git을 오래 쓴 사람일수록 이 부분의 가치가 크다.
기능은 같지만 인지 부하가 훨씬 낮아진다.


3. Cherry-pick

  • Shift + c: 커밋 복사
  • Shift + v: 붙여넣기(cherry-pick)

체리픽은 자주 쓰지는 않아도 필요할 때는 꼭 필요한 기능인데, CLI에서는 매번 커밋 해시를 다뤄야 해서 흐름이 끊긴다. Lazygit은 이 작업을 눈으로 보고 바로 처리하게 해준다.


4. Bisect

커밋 뷰에서 b를 눌러 good/bad 마킹을 시작할 수 있다.

버그가 언제 들어왔는지 좁혀가는 git bisect는 강력하지만 CLI로는 다소 딱딱하다.
Lazygit은 이 과정을 조금 더 접근 가능하게 만든다.


5. 작업 트리 정리(Nuke working tree)

변경사항을 전부 날리고 싶을 때 reset 메뉴에서 nuke 옵션을 제공한다.

이 기능은 강력한 만큼 위험하지만,
실험 브랜치나 엉킨 작업 상태를 빠르게 초기화할 때 유용하다.


6. 과거 커밋 수정(Amend old commit)

현재 스테이징된 변경을 예전 커밋에 붙이는 작업도 가능하다.

보통 이런 작업은 interactive rebase 흐름 안에서 처리해야 해서 번거롭다.
Lazygit은 이를 UI 기반으로 단순화한다.


7. 필터링

/로 브랜치나 커밋 목록을 필터링할 수 있다.

브랜치가 많거나 히스토리가 긴 저장소에서는 기본적이지만 매우 중요한 기능이다.


8. Custom Commands

Lazygit은 커스텀 커맨드 시스템도 지원한다.
즉, 기본 기능에 없는 작업도 어느 정도 확장 가능하다.

단순 소비용 도구가 아니라 자기 워크플로우에 맞게 커스터마이징 가능한 Git 프론트엔드에 가깝다.


9. Worktrees 지원

브랜치 전환할 때 stash나 WIP 커밋 없이, 아예 worktree를 따로 생성해서 병렬 작업할 수 있다.

브랜치 여러 개를 동시에 다루는 사람이라면 체감 가치가 크다.


10. Undo / Redo

  • z: undo
  • ctrl+z: redo

Git 작업 중 실수했을 때 되돌릴 수 있다는 건 심리적 안정감을 준다.
다만 working tree나 stash까지 전부 되돌리는 건 아니고, reflog 기반으로 가능한 범위에서 작동한다.


11. Commit Graph / Commit Compare

커밋 그래프를 시각적으로 볼 수 있고, 커밋 두 개를 비교(diff)하는 기능도 제공한다.

CLI에서는 정보가 텍스트 위주로 흩어져 있지만, Lazygit은 관계를 더 한눈에 보여준다.


Lazygit이 특히 잘 맞는 사람

Lazygit은 모든 사람에게 필수는 아니다.
하지만 아래 유형에는 잘 맞는다.

잘 맞는 경우

  • Git은 매일 쓰지만, 긴 명령어와 복잡한 옵션은 피곤한 사람
  • rebase, squash, fixup을 자주 쓰는 사람
  • 커밋 정리와 히스토리 관리에 신경 쓰는 사람
  • terminal 기반 워크플로우를 선호하는 사람
  • GUI Git 클라이언트보다 가볍고 빠른 도구를 원하는 사람

덜 맞는 경우

  • Git 기능을 아주 제한적으로만 쓰는 사람
  • 이미 SourceTree, GitKraken 같은 GUI 툴에 충분히 만족하는 사람
  • TUI 조작 자체가 낯선 사람

즉, CLI와 GUI의 중간 지점을 원하는 개발자에게 가장 적합하다.


설치 방법

플랫폼별 설치 경로가 다양하다.

Windows

Scoop

scoop bucket add extras
scoop install lazygit

Chocolatey

choco install lazygit

Winget

winget install -e --id=JesseDuffield.lazygit

macOS / Linux

Homebrew

brew install lazygit

Go 설치

go install github.com/jesseduffield/lazygit@latest

설치 후 다음으로 버전 확인이 가능하다.

lazygit --version

사용 방법

Git 저장소 안에서 아래처럼 실행하면 된다.

lazygit

정말 이게 전부다.
별도 복잡한 설정 없이 바로 사용할 수 있다.

보통은 아래 흐름으로 익숙해지면 된다.

  1. 변경 파일 보기
  2. line/hunk 단위 스테이징
  3. 커밋 작성
  4. 브랜치 이동 / pull / push
  5. 필요 시 rebase / squash / fixup

즉, 일상적인 Git 작업 대부분을 한 화면 안에서 처리하게 된다.


Lazygit의 본질적 장점

Lazygit의 장점은 “Git을 더 쉽게 만든다”가 아니다.
더 정확히 말하면:

1. Git의 고급 기능 접근 비용을 낮춘다

interactive rebase, cherry-pick, bisect 같은 기능은 원래도 있었다.
Lazygit은 그것들을 덜 귀찮게 만든다.

2. 작업 맥락 전환을 줄인다

터미널 → 에디터 → 다시 터미널 같은 흐름이 줄어든다.
이건 생각보다 생산성 차이가 크다.

3. 히스토리 관리 습관을 개선한다

UI가 받쳐주면 squash, fixup, amend를 더 자주 쓰게 된다.
결국 커밋 품질이 좋아진다.


한계도 있다

무조건 만능은 아니다.

1. Git 자체를 이해하지 못하면 결국 막힌다

Lazygit은 Git을 숨기는 도구가 아니라 Git을 더 다루기 쉽게 만드는 도구다.
rebase, reflog, merge, stash 개념을 모르면 위험한 작업도 쉽게 눌러버릴 수 있다.

2. GUI보다 설명적이지는 않다

TUI는 가볍고 빠르지만, 완전 초보자에게는 여전히 진입장벽이 있다.

3. 복잡한 팀 정책까지 해결해주진 않는다

예를 들어 rebase 금지, squash merge 규칙, trunk-based 전략 같은 것은 도구가 아니라 팀 프로세스 문제다.


개인적으로 보이는 포지션

Lazygit은 다음 포지션에 있다.

  • CLI보다 쉽고 빠르다
  • GUI보다 가볍고 터미널 친화적이다
  • Git 기능을 제한하지 않는다

그래서 개발자에게는 단순 편의 도구가 아니라,
Git 고급 기능을 일상적으로 쓰게 만드는 인터페이스라는 점에서 의미가 있다.

특히 프론트엔드/풀스택 개발처럼 브랜치 실험, 커밋 정리, 빠른 컨텍스트 전환이 잦은 환경에서는 꽤 잘 맞는다.


마무리

Git은 강력하지만 불친절하다.
Lazygit은 그 불친절함을 완전히 없애지는 않지만, 적어도 매일 반복되는 불편을 꽤 많이 줄여준다.

정리하면 Lazygit은 이런 도구다.

  • Git의 핵심 기능을 그대로 활용하고
  • 복잡한 조작을 TUI로 단순화하며
  • 커밋 정리, rebase, cherry-pick 같은 고급 작업을 일상화하게 돕는 도구

Git CLI가 너무 번거롭고, 그렇다고 무거운 GUI 클라이언트까지는 원하지 않는다면 Lazygit은 충분히 시도해볼 만하다.


참고: lazygit - Github

profile
Tech Archive 2026

0개의 댓글