Lazygit 사용법 총정리 — 8가지 핵심 기능과 실전 가이드
Git은 현대 소프트웨어 개발에서 빼놓을 수 없는 버전 관리 도구입니다. 하지만 터미널에서 순수하게 CLI만으로 Git을 다루다 보면, 단순한 add, commit, push 사이클을 벗어나는 순간 작업이 눈에 띄게 느려집니다. 인터랙티브 리베이스를 하려면 git rebase -i HEAD~5를 입력하고 에디터에서 pick 키워드를 일일이 squash로 바꿔야 하고, 머지 충돌이 발생하면 양쪽 변경 사항을 diff 결과로 한 줄씩 비교해야 합니다. 파일의 특정 라인 몇 줄만 스테이징하고 싶을 때는 git add -p의 대화형 프롬프트와 씨름해야 하죠. Lazygit은 바로 이 모든 고충을 터미널 화면 안에서 시각적으로, 키보드 몇 번으로 해결하는 Git TUI(Text User Interface) 도구입니다.
Go 언어로 작성된 Lazygit은 개발자 Jesse Duffield가 2018년에 시작한 오픈소스 프로젝트로, GitHub에서 55,000개 이상의 스타를 기록하며 전 세계 개발자들의 일상 도구로 자리 잡았습니다. 터미널을 떠나지 않으면서도 파일 변경 내역, 브랜치 트리, 커밋 히스토리, 스태시 목록을 한눈에 보여주고, 마우스 없이 키보드만으로 거의 모든 Git 작업을 수행할 수 있습니다. SourceTree나 GitKraken 같은 GUI 클라이언트를 쓰자니 무겁고 터미널 워크플로우가 끊기고, 순수 CLI만으로 하자니 복잡한 작업에서 실수가 잦다면, Lazygit이 정확히 그 중간 지점을 채워줍니다.
이 글에서는 Lazygit의 설치부터 화면 구성, 8가지 핵심 기능, 설정 커스터마이징, 에디터 통합까지 한 편에 총정리합니다. Git을 매일 쓰는 개발자라면, 이 도구를 도입한 첫날부터 작업 속도의 차이를 체감할 수 있을 것입니다.
이 가이드는 Git의 기본 명령어(add, commit, push, pull, branch)를 이미 사용해 본 분을 대상으로 합니다. Git 자체가 완전히 처음이라면 먼저 기초를 익힌 뒤 이 글로 돌아오시는 것을 추천합니다. 반대로 이미 Git을 매일 쓰고 있지만 복잡한 작업에서 막히거나, GUI 클라이언트의 무거움이 불만이었다면, 이 글에서 소개하는 8가지 기능이 실질적인 해답이 될 것입니다.
Lazygit 설치 — Windows·macOS·Linux 멀티 플랫폼 지원
Lazygit은 Go로 컴파일된 단일 바이너리이기 때문에 별도의 런타임 의존성 없이 바로 설치할 수 있습니다. 운영체제별로 가장 편한 방법을 소개합니다.
Windows
Windows에서는 Scoop, Chocolatey, 또는 GitHub 릴리스를 활용할 수 있습니다. Scoop을 사용한다면 scoop install lazygit 한 줄이면 됩니다. Chocolatey 사용자는 choco install lazygit으로 설치합니다. 패키지 매니저 없이 직접 설치하고 싶다면, GitHub 릴리스 페이지에서 Windows용 zip 파일을 다운로드한 뒤 바이너리를 PATH가 걸린 디렉토리에 넣으면 됩니다. WinGet을 쓴다면 winget install jesseduffield.lazygit으로도 설치 가능합니다.
macOS
macOS에서는 Homebrew가 가장 간편합니다. brew install lazygit으로 설치하고, 이후 업데이트는 brew upgrade lazygit으로 처리합니다. MacPorts 사용자라면 port install lazygit도 가능합니다. Apple Silicon과 Intel Mac 모두 네이티브 바이너리를 지원하므로 성능 걱정은 없습니다.
Linux
Linux 배포판별로 다양한 경로가 있습니다. Arch Linux는 공식 저장소에 포함되어 있어 pacman -S lazygit으로 바로 설치됩니다. Fedora는 dnf copr enable atim/lazygit으로 COPR 저장소를 추가한 뒤 dnf install lazygit을 실행합니다. Ubuntu나 Debian 계열에서는 공식 PPA를 추가하거나, GitHub 릴리스에서 deb 패키지를 다운로드하여 설치합니다. 배포판에 관계없이 Homebrew on Linux를 쓴다면 macOS와 동일하게 brew install lazygit으로 통일할 수 있어 편리합니다.
Go로 직접 빌드하기
Go 개발 환경이 이미 갖춰져 있다면 go install github.com/jesseduffield/lazygit@latest로 최신 버전을 직접 빌드하여 설치할 수도 있습니다. Go 1.21 이상이면 문제없이 빌드됩니다. 또한 Docker로 설치 없이 한 번 체험해 볼 수도 있지만, 일상적 사용에는 네이티브 설치가 훨씬 빠르고 편합니다.
설치 확인
설치가 끝났으면 터미널에서 lazygit --version을 실행해 버전 정보가 정상 출력되는지 확인합니다. 이후 Git 저장소가 있는 디렉토리에서 lazygit을 입력하면 TUI가 열립니다. Git 저장소가 아닌 곳에서 실행하면 새로 초기화할지 묻는 프롬프트가 뜨므로, 기존 프로젝트 디렉토리에서 실행하는 것이 가장 깔끔합니다. 터미널 크기가 너무 작으면 패널이 제대로 표시되지 않을 수 있으니, 최소 80열 이상의 터미널 너비를 확보해 두는 것이 좋습니다.
Lazygit 화면 구성과 기본 네비게이션

Lazygit을 처음 실행하면 터미널 전체를 채우는 TUI 화면이 나타납니다. 화면은 크게 왼쪽의 사이드 패널 영역과 오른쪽의 메인 뷰 영역으로 나뉩니다. 왼쪽에는 다섯 개의 패널이 세로로 쌓여 있고, 오른쪽에는 현재 선택한 항목의 상세 정보가 표시됩니다. diff, 로그, 파일 내용 등이 자동으로 갱신되므로, 탐색만 해도 필요한 정보가 즉시 눈에 들어옵니다.
5개 패널 이해하기
- Status(상태) — 현재 브랜치, 업스트림 상태, 최근 저장소 정보를 보여줍니다. 저장소의 전반적인 건강 상태를 한눈에 파악하는 대시보드 역할입니다. upstream과의 ahead/behind 커밋 수가 표시되어 push/pull이 필요한지 즉시 알 수 있습니다.
- Files(파일) — 워킹 디렉토리에서 변경된 파일 목록을 보여줍니다. 스테이징, 언스테이징, 변경 폐기 등 가장 자주 사용하는 작업이 이 패널에서 이루어집니다. 파일 왼쪽의 색상과 아이콘으로 스테이징 상태를 직관적으로 구분할 수 있습니다.
- Local Branches(로컬 브랜치) — 로컬 브랜치 목록을 보여주며, 탭을 전환하면 리모트 브랜치와 태그 목록도 볼 수 있습니다. 브랜치 체크아웃, 생성, 삭제, 머지, 리베이스를 이 패널에서 수행합니다.
- Commits(커밋) — 현재 브랜치의 커밋 히스토리를 시간 역순으로 보여줍니다. 탭으로 전환하면 reflog도 볼 수 있습니다. 인터랙티브 리베이스, 커밋 수정, cherry-pick 등 커밋 조작이 이루어지는 핵심 패널입니다.
- Stash(스태시) — 스태시 목록을 보여줍니다. 스태시 적용, 꺼내기, 삭제를 간편하게 수행할 수 있으며, 선택한 스태시의 변경 내역이 오른쪽 메인 뷰에 자동으로 표시됩니다.
기본 네비게이션
패널 사이를 이동할 때는 숫자 키 1부터 5를 누르거나, Tab 키로 순서대로 넘길 수 있습니다. 패널 안에서 위아래 항목을 오가려면 j/k(Vim 스타일) 또는 화살표 키를 사용합니다. 하나의 패널 안에 여러 탭이 있을 경우 — 예를 들어 Branches 패널의 Local, Remotes, Tags — [와 ] 키로 탭을 전환합니다. Esc 키는 현재 팝업이나 하위 화면을 닫고 이전 상태로 돌아갑니다.
가장 중요한 단축키는 ?입니다. 현재 패널에서 사용할 수 있는 모든 단축키 목록을 팝업으로 보여줍니다. 새로운 기능을 탐색하고 싶을 때, 또는 단축키가 기억나지 않을 때 언제든 ?를 눌러 확인하면 됩니다. Lazygit의 학습 곡선이 완만한 이유 중 하나가 바로 이 내장 도움말 시스템 덕분입니다. 처음에는 ?를 자주 누르게 되지만, 일주일 정도 쓰면 주요 단축키가 손에 익어 도움말 없이도 빠르게 작업할 수 있게 됩니다.
오른쪽 메인 뷰에는 현재 선택한 항목에 따라 다른 내용이 표시됩니다. Files 패널에서 파일을 선택하면 해당 파일의 diff가, Commits 패널에서 커밋을 선택하면 그 커밋의 변경 내역이 자동으로 나타납니다. 별도의 명령을 입력하지 않아도 탐색만으로 정보가 즉시 갱신되는 점이 CLI 대비 큰 장점입니다. diff 내용이 길 때는 메인 뷰에서 j/k 또는 화살표 키로 스크롤할 수 있고, +와 - 키로 diff 컨텍스트 줄 수를 늘리거나 줄일 수도 있습니다.
추가로 알아두면 좋은 것이 명령 로그입니다. @ 키를 누르면 Lazygit이 내부적으로 실행한 Git 명령어의 히스토리를 볼 수 있습니다. 예를 들어 space 키로 파일을 스테이징했을 때 실제로 git add <파일명>이 실행되었다는 것을 확인할 수 있습니다. 각 키 입력이 어떤 Git 명령으로 변환되었는지 투명하게 보여주기 때문에 Git을 학습하는 데에도 큰 도움이 됩니다. Lazygit을 쓰면서 자연스럽게 Git 내부 동작에 대한 이해도가 높아지는 부수 효과가 있습니다.
핵심 기능 1–2: 정밀 스테이징과 빠른 커밋
파일·헝크·라인 단위 스테이징
Git에서 커밋의 품질을 높이려면 변경 사항을 논리적 단위로 나눠서 스테이징하는 습관이 중요합니다. CLI에서는 git add -p로 대화형 스테이징을 할 수 있지만, y/n/s/e 선택지를 반복하는 과정이 직관적이지 않습니다. 특히 하나의 파일 안에서 여러 변경이 섞여 있을 때, 어떤 헝크(hunk)가 어떤 변경에 해당하는지 파악하기가 어렵습니다. Lazygit에서는 이 작업이 훨씬 자연스럽고 시각적입니다.
Files 패널에서 space 키를 누르면 파일 전체를 스테이징하거나 언스테이징할 수 있습니다. 모든 파일을 한꺼번에 스테이징하고 싶으면 a 키를 누릅니다. 여기까지는 git add와 크게 다르지 않습니다. 진짜 차이가 드러나는 것은 헝크(hunk) 단위와 라인 단위 스테이징입니다.
파일을 선택한 상태에서 enter를 누르면 해당 파일의 diff가 헝크 단위로 펼쳐집니다. 오른쪽 메인 뷰에서 각 헝크의 변경 내용을 확인할 수 있고, space를 누르면 그 헝크만 개별적으로 스테이징됩니다. 더 세밀한 제어가 필요하면 v 키를 눌러 라인 선택 모드로 전환한 뒤, 원하는 라인 범위를 지정해서 스테이징할 수 있습니다. CLI의 git add -p에서 e(edit)를 눌러 에디터로 편집하는 것보다 훨씬 직관적입니다.
예를 들어, 하나의 파일에 버그 수정 코드와 리팩토링 코드가 섞여 있을 때를 생각해 봅시다. 버그 수정에 해당하는 헝크만 먼저 스테이징해서 “fix: 로그인 토큰 만료 시 NPE 수정” 커밋을 만들고, 리팩토링 변경은 별도로 “refactor: 인증 모듈 변수명 정리” 커밋으로 나눌 수 있습니다. CLI에서는 상당히 번거로운 이 작업이 Lazygit에서는 시각적으로 확인하며 몇 초 만에 끝납니다.
Files 패널에서 유용한 부가 기능도 소개합니다. 특정 파일을 .gitignore에 추가하는 작업이 키 하나로 가능합니다. 파일을 선택하고 i 키를 누르면 해당 파일 또는 패턴이 .gitignore에 추가됩니다. 빌드 산출물이나 환경 설정 파일이 실수로 Git에 추적되고 있을 때 빠르게 정리할 수 있어 편리합니다.
커밋 작성과 즉석 수정
스테이징이 끝났으면 c 키를 눌러 커밋합니다. 커밋 메시지 입력 창이 TUI 내부에 팝업으로 뜨며, 한 줄 메시지를 작성하고 Enter를 누르면 바로 커밋됩니다. 간단한 수정이나 명확한 변경에는 이 방식이 가장 빠릅니다. 더 긴 메시지를 작성하고 싶으면 대문자 C를 누르면 외부 에디터(VS Code, Vim 등 설정된 에디터)가 열려 여러 줄의 커밋 메시지를 본문까지 포함해서 편집할 수 있습니다.
방금 커밋한 메시지를 수정하고 싶다면 대문자 A를 누릅니다. git commit --amend와 동일한 효과이지만, 추가로 스테이징된 변경 사항이 있으면 함께 이전 커밋에 합쳐줍니다. 커밋 직후 오타를 발견했거나, 빠뜨린 파일이 있을 때 매우 유용합니다. 아직 push하지 않은 로컬 커밋이라면 부담 없이 amend를 활용해서 깔끔한 커밋을 만들 수 있습니다.
파일의 변경 사항을 완전히 폐기하고 싶을 때는 Files 패널에서 해당 파일을 선택하고 d 키를 누릅니다. 확인 프롬프트가 뜨므로 실수로 변경을 날리는 일은 걱정하지 않아도 됩니다. 대문자 D를 누르면 추가 옵션 메뉴가 나타나, unstaged 변경만 폐기하거나, 파일 자체를 리셋하는 등 더 세밀한 제어가 가능합니다.
핵심 기능 3: 브랜치 생성·전환·머지
Branches 패널(숫자 3으로 이동)에서는 로컬 브랜치의 전체 목록을 한눈에 볼 수 있습니다. 현재 체크아웃된 브랜치는 상단에 하이라이트로 표시되고, 각 브랜치 옆에 upstream과의 ahead/behind 상태가 함께 표시되어 동기화 상태를 즉시 파악할 수 있습니다.
새 브랜치를 만들려면 n 키를 누르고 브랜치 이름을 입력합니다. 현재 브랜치의 HEAD를 기준으로 새 브랜치가 생성되고 자동으로 체크아웃됩니다. 다른 브랜치로 전환하려면 목록에서 원하는 브랜치를 선택하고 space 키를 누릅니다. 스테이징하지 않은 변경이 있으면 충돌 여부에 따라 경고가 표시되므로, 변경을 커밋하거나 스태시한 뒤 전환하면 됩니다.
브랜치 머지는 직관적입니다. 먼저 머지 대상 브랜치(예: main)를 체크아웃한 상태에서, Branches 패널에서 머지하고 싶은 브랜치(예: feature/login)를 선택하고 대문자 M 키를 누릅니다. 선택한 브랜치의 변경이 현재 브랜치로 머지됩니다. fast-forward가 가능한 경우 자동으로 fast-forward 머지가 이루어지고, 아닌 경우 머지 커밋이 생성됩니다. 충돌이 발생하면 Files 패널에 충돌 파일이 빨간색으로 표시되며, 이에 대해서는 뒤에서 자세히 다룹니다.
리베이스도 비슷한 흐름입니다. 현재 브랜치가 feature 브랜치인 상태에서, Branches 패널에서 main을 선택하고 소문자 r을 누르면 현재 브랜치를 main 위로 리베이스합니다. 브랜치 이름을 바꾸려면 대문자 R 키, 브랜치를 삭제하려면 d 키를 사용합니다. 원격에 이미 push된 브랜치를 삭제하려 할 때는 원격 삭제 여부를 묻는 프롬프트가 뜨므로 실수를 방지할 수 있습니다.
탭 키 [과 ]로 Branches 패널 내의 Remotes 탭과 Tags 탭도 전환할 수 있습니다. Remotes 탭에서는 원격 브랜치를 로컬로 체크아웃하거나, 원격 브랜치를 추적 설정하는 작업도 이 화면에서 바로 수행됩니다. Tags 탭에서는 태그 생성과 삭제를 처리합니다. 전역 단축키 p로 pull, 대문자 P로 push를 실행할 수 있어, 원격 저장소와의 동기화도 패널 전환 없이 즉시 이루어집니다.
머지가 완료된 후 필요 없어진 feature 브랜치를 d 키로 바로 삭제할 수 있어, 브랜치 정리 작업도 한 화면 안에서 자연스럽게 이어집니다. CLI에서는 브랜치를 먼저 전환하고, 삭제 명령을 입력하고, force 옵션이 필요한지 판단해야 하는 과정이 Lazygit에서는 키 두세 번으로 끝납니다.
핵심 기능 4: 인터랙티브 리베이스로 커밋 히스토리 정리

인터랙티브 리베이스는 Git에서 가장 강력하면서도 실수하기 쉬운 기능 중 하나입니다. CLI에서는 git rebase -i를 실행하면 에디터가 열리고, 커밋 목록 앞에 붙은 pick 키워드를 squash, fixup, drop, reword 등으로 수동으로 바꿔야 합니다. 순서를 바꾸려면 줄을 잘라서 원하는 위치에 붙여야 하죠. 오타 하나면 리베이스가 실패하고, 복구 과정도 복잡합니다. Lazygit에서는 이 모든 과정이 시각적으로, 키 한 번으로 이루어집니다.
리베이스 시작하기
Commits 패널(숫자 4)에서 리베이스의 기준이 될 커밋을 선택하고 e 키를 누르면 인터랙티브 리베이스가 시작됩니다. 화면 상단에 “rebasing” 표시가 나타나고, 선택한 커밋 위의 모든 커밋이 편집 가능한 상태가 됩니다. 이 상태에서 각 커밋에 대해 다양한 조작을 할 수 있습니다.
커밋 조작 키
s— Squash(합치기): 선택한 커밋을 바로 아래 커밋과 합칩니다. 두 커밋의 메시지가 합쳐진 새 메시지를 편집할 수 있습니다. 여러 개의 관련 커밋을 하나로 묶을 때 사용합니다.f— Fixup(조용히 합치기): Squash와 동일하게 합치되, 선택한 커밋의 메시지는 버리고 아래 커밋의 메시지만 유지합니다. 오타 수정, import 추가 같은 단순한 후속 수정 커밋을 정리할 때 가장 편리합니다.r— Reword(메시지 수정): 커밋 내용은 그대로 두고 메시지만 수정합니다. 오타 수정이나 커밋 메시지 컨벤션 통일에 유용합니다.d— Drop(삭제): 커밋을 히스토리에서 완전히 제거합니다. 실험적으로 넣었다가 불필요해진 커밋, 또는 다른 커밋에 이미 포함된 중복 커밋을 제거할 때 사용합니다.ctrl+j/ctrl+k— 순서 변경: 커밋을 위아래로 이동시켜 순서를 바꿉니다. CLI에서 에디터로 줄을 잘라 붙이는 것보다 훨씬 직관적이고 실수할 가능성이 낮습니다.
실전 시나리오: 작업 커밋 5개를 2개로 정리하기
feature 브랜치에서 작업하면서 “WIP: 로그인 화면”, “fix typo”, “add missing import”, “로그인 로직 완성”, “eslint 경고 수정” 같은 커밋이 쌓였다고 가정해 봅시다. PR을 올리기 전에 이 5개 커밋을 “feat: 로그인 화면 구현”과 “feat: 로그인 API 연동” 같은 의미 있는 2개 커밋으로 정리하고 싶습니다.
Commits 패널에서 정리 범위의 가장 아래 커밋, 즉 feature 브랜치 시작점의 부모 커밋을 선택하고 e로 리베이스를 시작합니다. 이제 5개 커밋이 편집 가능 상태가 됩니다. 화면과 관련된 첫 세 커밋을 s로 squash하고, 메시지를 “feat: 로그인 화면 구현”으로 정리합니다. 나머지 두 커밋도 squash한 뒤 “feat: 로그인 API 연동”으로 메시지를 작성합니다. 변경이 끝나면 자동으로 리베이스가 완료됩니다.
이 전체 과정이 CLI에서는 에디터를 열고 닫고를 반복하며 수 분이 걸리지만, Lazygit에서는 보통 30초 이내에 끝납니다. 한번 익숙해지면 PR 전 커밋 정리가 부담이 아니라 자연스러운 습관이 됩니다. 코드 리뷰어에게도 깔끔한 커밋 히스토리를 보여줄 수 있어, 팀 전체의 코드 리뷰 효율이 높아집니다.
실수 되돌리기: Undo와 Redo
리베이스 중 실수가 걱정된다면, Lazygit의 undo/redo 기능이 안전망 역할을 합니다. z 키를 누르면 직전 Git 작업을 되돌릴 수 있고, ctrl+z로 다시 실행할 수 있습니다. 예를 들어 실수로 커밋을 drop했거나, 잘못된 커밋을 squash했을 때 당황하지 않고 z를 눌러 원래 상태로 복구할 수 있습니다. 이 기능은 reflog 기반으로 동작하며, 리베이스뿐 아니라 브랜치 전환, 머지, 체리픽 등 대부분의 Git 작업에서 사용할 수 있습니다. 다만 아직 실험적 기능이므로, 중요한 작업 전에는 먼저 현재 상태를 확인한 뒤 사용하는 것이 안전합니다.
핵심 기능 5–6: 머지 충돌 해결과 Cherry-pick
머지 충돌 시각적 해결
머지나 리베이스 도중 충돌이 발생하면, CLI에서는 <<<<<<<, =======, >>>>>>> 마커가 삽입된 파일을 에디터로 열어서 수동으로 편집해야 합니다. 파일이 여러 개이고 충돌 구간이 많으면, 어느 부분이 현재 브랜치(ours)이고 어느 부분이 상대 브랜치(theirs)인지 헷갈리기 쉽습니다.
Lazygit에서는 충돌이 발생한 파일이 Files 패널에 빨간색 충돌 아이콘과 함께 표시됩니다. 충돌 파일을 선택하고 enter를 누르면, 각 충돌 구간이 시각적으로 구분된 화면이 나타납니다. ours(현재 브랜치의 변경)와 theirs(상대 브랜치의 변경)가 색상으로 명확히 구별되어 보이기 때문에, 어떤 코드를 선택해야 하는지 한눈에 파악할 수 있습니다.
각 충돌 구간에서 키 하나로 어느 쪽을 선택할지 결정합니다. ours를 선택하거나, theirs를 선택하거나, 양쪽을 모두 포함할 수도 있습니다. 복잡한 충돌의 경우, e 키를 눌러 설정된 외부 에디터로 파일을 열고 수동으로 편집하는 것이 나을 때도 있습니다. 에디터에서 충돌을 해결하고 저장하면, Lazygit으로 돌아왔을 때 변경 사항이 자동으로 반영됩니다. 모든 충돌 파일이 해결된 뒤에는 리베이스나 머지를 계속 진행하면 됩니다. 정확한 충돌 해결 단축키는 버전에 따라 다를 수 있으므로, 충돌 화면에서 ?를 눌러 현재 사용 가능한 키를 확인하시기 바랍니다.
Cherry-pick으로 원하는 커밋만 골라 담기
Cherry-pick은 다른 브랜치의 특정 커밋만 현재 브랜치로 가져오고 싶을 때 사용합니다. 핫픽스를 여러 릴리스 브랜치에 적용하거나, 실험 브랜치에서 성공한 커밋만 메인 브랜치로 가져올 때 유용합니다. CLI에서는 커밋 해시를 복사해서 git cherry-pick <hash>를 입력해야 하지만, Lazygit에서는 시각적 클립보드 방식으로 처리할 수 있습니다.
Commits 패널에서 cherry-pick하고 싶은 커밋을 선택하고 복사 키를 눌러 Lazygit의 내부 클립보드에 담습니다. 여러 커밋을 순서대로 선택해서 담을 수도 있습니다. 그다음 Branches 패널에서 대상 브랜치로 체크아웃한 뒤, 붙여넣기 키를 누르면 클립보드에 담긴 커밋들이 현재 브랜치에 cherry-pick됩니다. 어떤 커밋이 클립보드에 담겨 있는지 화면에 시각적으로 표시되기 때문에, 실수로 잘못된 커밋을 적용하는 일을 줄일 수 있습니다.
핵심 기능 7–8: Stash 관리와 커스텀 커맨드
Stash 관리
작업 중 급히 다른 브랜치로 전환해야 할 때, 현재 변경 사항을 임시로 보관하는 것이 스태시(stash)입니다. CLI에서는 git stash, git stash list, git stash pop, git stash show 등 여러 명령을 써야 하고, 스태시가 쌓이면 어떤 항목에 어떤 변경이 들어 있는지 파악하기 어려워집니다. Lazygit에서는 Stash 패널(숫자 5)에서 이 모든 것을 직관적으로 관리할 수 있습니다.
Files 패널에서 변경 사항이 있는 상태에서 소문자 s를 누르면 현재 변경이 스태시에 저장됩니다. 스태시 메시지를 입력할 수 있는 프롬프트가 뜨므로, 나중에 어떤 작업이었는지 식별할 수 있게 의미 있는 메시지를 남기는 것이 좋습니다. 예를 들어 “WIP: 결제 모듈 리팩토링 중” 같은 메시지를 넣어두면 일주일 뒤에도 어떤 작업이었는지 바로 알 수 있습니다.
저장된 스태시는 Stash 패널에서 목록으로 확인할 수 있습니다. space 키로 스태시를 적용(apply)하면 변경 사항이 워킹 디렉토리에 복원되지만 스태시 항목은 그대로 남습니다. g 키로 꺼내기(pop)를 하면 적용과 동시에 스태시 항목이 삭제됩니다. 더 이상 필요 없는 스태시는 d 키로 삭제합니다. 가장 유용한 점은, 스태시 항목을 선택하면 오른쪽 메인 뷰에 해당 스태시의 변경 내역이 diff로 표시된다는 것입니다. 적용하기 전에 내용을 미리 확인할 수 있어, 잘못된 스태시를 적용하는 실수를 방지할 수 있습니다.
커스텀 커맨드
Lazygit의 기본 기능만으로도 대부분의 Git 작업을 처리할 수 있지만, 팀마다 반복하는 고유한 Git 워크플로우가 있습니다. 예를 들어 특정 포맷의 커밋 메시지 템플릿을 사용하거나, 배포 전에 특정 스크립트를 실행하거나, 여러 원격 저장소를 한꺼번에 동기화하는 작업 등이 있을 수 있습니다. 이런 반복 작업을 커스텀 커맨드로 등록해두면 키 하나로 실행할 수 있습니다.
설정 파일의 customCommands 섹션에 커맨드를 YAML 형식으로 정의합니다. 각 커맨드에는 바인딩할 키(key), 실행할 셸 명령(command), 어떤 패널에서 활성화할지(context), 그리고 선택적으로 사용자 입력 프롬프트(prompts)를 지정할 수 있습니다. 예를 들어, 모든 원격 저장소를 한꺼번에 fetch하고 prune하는 명령을 글로벌 컨텍스트의 F 키에 바인딩할 수 있습니다.
커스텀 커맨드에 프롬프트를 넣으면, 실행할 때마다 브랜치 이름이나 커밋 메시지 같은 동적 값을 받아서 명령에 삽입하는 것도 가능합니다. 이 기능을 잘 활용하면, Lazygit을 단순한 Git TUI를 넘어 팀의 워크플로우 자동화 도구로 확장할 수 있습니다. 자세한 YAML 포맷과 다양한 예제는 Lazygit 공식 설정 문서에서 확인할 수 있습니다.
Lazygit 설정 커스터마이징과 에디터 통합

설정 파일 위치와 기본 구조
Lazygit의 설정 파일은 YAML 형식이며, 운영체제에 따라 다른 위치에 저장됩니다. Linux에서는 ~/.config/lazygit/config.yml, macOS에서는 ~/Library/Application Support/lazygit/config.yml, Windows에서는 %APPDATA%\lazygit\config.yml입니다. 정확한 경로를 모르겠으면 터미널에서 lazygit --print-config-dir을 실행하면 설정 디렉토리를 알려줍니다.
설정 파일이 없으면 Lazygit이 기본값으로 동작합니다. 처음에는 설정 파일 없이 사용하다가, 필요한 항목이 생길 때 하나씩 추가하는 것이 권장됩니다. 설정 파일의 기본 구조는 크게 gui(테마와 UI 옵션), os(에디터 설정과 OS별 동작), customCommands(사용자 정의 명령), keybinding(키 바인딩 재매핑) 네 섹션으로 나뉩니다.
테마와 색상
Lazygit은 기본적으로 터미널의 색상 테마를 따릅니다. 하지만 gui 설정으로 세부 색상을 커스터마이징할 수 있습니다. 밝은 배경의 터미널을 쓴다면 gui.theme.lightTheme: true로 설정하면 가독성이 크게 좋아집니다. 선택 항목의 배경색, 브랜치별 색상, diff에서 추가된 줄과 삭제된 줄의 색상 등을 개별적으로 조정할 수 있습니다.
Nerd Font를 터미널에 설치한 사용자라면 gui.nerdFontsVersion을 사용 중인 버전(예: “3”)으로 설정해서 파일 타입별 아이콘, 브랜치 아이콘, 상태 아이콘 등을 활성화할 수 있습니다. 시각적 정보가 풍부해져서 파일 종류나 Git 상태를 더 빠르게 인식할 수 있습니다. 설정 후 Lazygit을 재시작하면 적용됩니다.
에디터 통합
Lazygit에서 파일을 편집할 때 어떤 에디터를 열지 설정하는 것은 자주 필요한 커스터마이징입니다. 최신 버전에서는 os.editPreset 옵션으로 주요 에디터를 한 줄에 설정할 수 있습니다. VS Code 사용자라면 os.editPreset: "vscode", Neovim 사용자라면 os.editPreset: "nvim", Sublime Text라면 os.editPreset: "sublime"으로 설정합니다. 이렇게 하면 Lazygit에서 e 키를 눌러 파일을 편집할 때 해당 에디터가 정확한 라인 번호로 열립니다.
프리셋이 지원하지 않는 에디터를 쓰거나, 동작을 세밀하게 조정하고 싶으면 os.edit, os.editAtLine, os.editAtLineAndWait 같은 세부 설정 키를 사용합니다. 이 설정에는 {{filename}}과 {{line}} 템플릿 변수를 사용해서 파일 경로와 라인 번호를 에디터에 전달합니다. 예를 들어 VS Code를 수동으로 설정한다면 os.edit: "code --goto -- {{filename}}:{{line}}" 형태가 됩니다.
마우스 지원과 기타 옵션
기본적으로 Lazygit은 키보드 중심 도구이지만, 마우스도 사용할 수 있습니다. 터미널이 마우스 이벤트를 지원한다면, 패널을 클릭해서 전환하거나 항목을 클릭해서 선택하는 것도 가능합니다. 키보드와 마우스를 혼용하는 스타일이라면 켜두면 편리합니다. 다만 대부분의 숙련 사용자는 키보드만으로 더 빠르게 작업하므로, 초반 학습 후에는 키보드 위주로 사용하는 것을 추천합니다.
그 외에도 git.autoFetch를 설정하면 주기적으로 원격 저장소를 자동 fetch하여 로컬 브랜치의 behind 상태를 항상 최신으로 유지할 수 있습니다. git.paging.pager를 delta 같은 도구로 설정하면 diff 출력이 더 아름답고 가독성 높게 표시됩니다. 이런 옵션들을 하나씩 실험하면서 자신에게 맞는 환경을 만들어 가는 것도 Lazygit을 쓰는 즐거움 중 하나입니다.
마무리: Lazygit을 일상 워크플로우에 녹여내기
Lazygit은 처음 실행한 순간부터 바로 쓸 수 있을 만큼 직관적이면서도, 파고들수록 CLI에서는 번거롭게 느꼈던 작업들을 빠르게 처리할 수 있게 해줍니다. 특히 인터랙티브 리베이스와 머지 충돌 해결에서 체감하는 속도 차이가 가장 큽니다. CLI로 3분 걸리던 커밋 정리 작업이 30초로 줄어드는 경험을 하면, 다시 순수 CLI로 돌아가기 어렵습니다.
처음 도입할 때 추천하는 전략은, 우선 기존 Git 워크플로우를 그대로 유지하면서 Lazygit을 보조 도구로 쓰는 것입니다. 스테이징과 커밋은 Lazygit으로 하되, push나 pull은 익숙한 CLI 명령을 쓰는 식입니다. 점차 익숙해지면 브랜치 관리, 리베이스, 충돌 해결까지 Lazygit으로 전환하게 될 것입니다. 강제로 전부 바꾸려 하지 말고, 불편했던 작업부터 하나씩 대체하는 것이 가장 자연스러운 전환 경로입니다.
셸 설정 파일에 별칭(alias)을 등록해 두면 더 빠르게 접근할 수 있습니다. Bash나 Zsh에서는 .bashrc 또는 .zshrc에 alias lg='lazygit'을 추가하고, Windows PowerShell에서는 $PROFILE 파일에 Set-Alias lg lazygit을 추가합니다. 이렇게 하면 어느 Git 저장소에서든 lg 두 글자만 입력해서 바로 Lazygit을 열 수 있어, 자연스럽게 사용 빈도가 높아집니다.
Lazygit을 활용한 추천 일일 워크플로우를 정리합니다. 아침에 프로젝트 디렉토리에서 lg를 실행합니다. p로 최신 변경을 pull하고, Status 패널에서 저장소 상태를 확인합니다. 코드를 작성한 뒤에는 Files 패널에서 헝크 단위로 정밀하게 스테이징하고, 의미 있는 단위로 커밋합니다. PR을 올리기 전에 Commits 패널에서 커밋 히스토리를 정리하고, 대문자 P로 push합니다. 이 전체 흐름이 터미널 한 화면 안에서 끊김 없이 이어지는 것이 Lazygit의 핵심 가치입니다.
Git은 개발자가 매일 쓰는 도구이기 때문에, 여기서 줄어드는 마찰은 누적되면 상당한 생산성 향상으로 이어집니다. 아직 Lazygit을 써보지 않았다면, 오늘 설치하고 현재 작업 중인 프로젝트에서 한 번 실행해 보시기 바랍니다. ? 키 하나면 어디서든 도움말을 볼 수 있으니, 별도의 학습 자료 없이 바로 탐색을 시작할 수 있습니다.
- [opencode 시즌 2 심화 — 나만의 도메인 특화 에이전트 만들기] 1/12화: opencode 에이전트 아키텍처 완전 해부 — 2026 Primary·Subagent 5계층 구조
- [opencode 12일 집중 — 터미널 네이티브 AI 코딩 에이전트 완전 정복] 12/12화: opencode 로컬 모델 완전 가이드 2026 — Ollama·에어갭·규제 환경 도입 체크리스트
- [opencode 12일 집중 — 터미널 네이티브 AI 코딩 에이전트 완전 정복] 11/12화: opencode 멀티 세션·서브에이전트·Git 통합 실전 가이드 2026
- Dev Containers로 개발 환경을 코드로 통일하는 실전 가이드