큰 변경 사항을 작은 리뷰 단위로 쪼개서 순서대로 검토하는 방법
한 번에 수백 줄을 바꾸는 대신, 각 계층이 아래 계층 위에 쌓이는 구조로 코드를 정리하면 리뷰어가 한 번에 이해하기 쉬워집니다. 이 도구는 그 구조를 만들고 유지하는 번거로운 작업을 자동으로 처리합니다. 지점(branch)을 만들고, 최신 상태로 갱신하며, 올바른 기반 지점을 설정하는 과정을 명령어 하나로 해결합니다.
스택 구조와 작동 원리
스택은 지점들의 순서 목록으로, 각 지점은 바로 아래 지점을 기반으로 합니다. 가장 아래 지점은 메인 브랜치 같은 트렁크에 연결되고, 위쪽으로 갈수록 더 새로운 변경 사항이 쌓입니다. 리뷰어는 각 지점의 PR을 열면 해당 계층의 차이만 보게 되어 집중도가 높아집니다. gh stack은 이 계층 구조를 로컬에 기록하고, GitHub의 스택 기능과 연동해 PR들을 하나의 묶음으로 관리합니다.
일상적인 작업 흐름
특히 gh stack sync는 원격 변경 사항을 가져와서 재베이스하고, PR 상태를 동기화하는 과정을 한 번에 수행합니다. 이 과정에서 충돌이 발생하면 작업을 일시 중지하고, 해결 후 --continue로 이어서 진행할 수 있습니다.
지점 재구성 및 워크트리 지원
모든 변경 사항은 미리보기 단계에서 확인한 뒤 저장 시점에 한 번에 적용됩니다. 또한 Git 워크트리를 지원하여 여러 스택을 독립적으로 관리하거나, 하나의 스택 지점들을 여러 워크트리에 분산할 수 있습니다. 재베이스나 동기화 시 각 지점을 소유한 워크트리를 자동으로 찾아 업데이트하며, 다른 워크트리는 건드리지 않습니다.
도입 전 확인 사항
이 도구는 GitHub CLI v2.0 이상과 Git 2.36 이상을 요구합니다. 설치 후 업데이트 알림은 24시간 캐싱되며, 원치 않을 경우 환경 변수로 비활성화할 수 있습니다. AI 코딩 에이전트와 함께 쓰려면 별도 스킬을 설치해야 합니다. 로컬 메타데이터는 .git/gh-stack에 저장되며, 워크트리 간 공유됩니다. 버전 업그레이드 시 이전 버전과의 호환성을 위해 기존 작업을 완료하거나 중단하는 것이 좋습니다. 복잡한 워크트리 환경에서는 변경 사항이 직렬화되므로, 다른 Git 명령과 동시에 실행하지 않는 것이 안전합니다.