Stacked PR 쉽고 빠르게 관리하는 방법, gh-domino 자동화 도구 소개

개발 작업을 하다 보면 여러 명이 동시에 코드를 수정하는 일이 흔히 발생합니다. 이런 경우 변경 사항을 효과적으로 관리하는 것이 매우 중요하죠. 그런데 'Stacked PR(계단식 PR)'이란 개념이 처음인 분들은 다소 낯설고 복잡하게 느껴질 수 있습니다. 이번 글에서는 누구나 쉽게, 명확하게 Stacked PR을 이해할 수 있도록 차근차근 설명해드리겠습니다.
Stacked PR, 쉽게 풀어서!
PR(Pull Request)은 다른 사람이 만든 코드를 우리 프로젝트에 합치고 싶을 때 사용하는 기능입니다. 그런데 여러 개의 PR이 서로 연결되는 상황이 종종 생깁니다. 예를 들어, 첫 번째 PR에서 기능 A를 추가하고 두 번째 PR에서는 기능 A 위에 기능 B를 쌓는 식이죠. 이런 식으로 PR이 겹겹이 올라가면, 앞 PR이 먼저 반영되어야 뒤 PR도 제대로 합쳐질 수 있습니다. 이러한 구조를 'Stacked PR(계단식 PR)'이라고 부릅니다.
아래는 계단식 PR 구조를 mermaid 다이어그램으로 나타낸 예시입니다.
기존 방식의 불편함
Stacked PR을 관리하려면 종종 복잡한 git 명령어를 써야 하고, 여러 번 반복해서 작업해야 하는 경우가 많습니다. git 사용이 익숙하지 않다면 브랜치를 어떤 순서로 옮겨야 하는지 헷갈릴 수 있고, 기존 Stack 관리 도구들도 설치나 사용법이 꽤 복잡한 편입니다. 설명서를 여러 번 읽어야 겨우 쓸 수 있을 정도죠.
자동 Rebase가 필요한 이유
'Rebase'란 쉽게 말해, 뒤에 있는 PR을 앞 PR 최신 코드 위에 다시 올려놓는 작업이라고 볼 수 있습니다. 앞의 PR에 변경이 생기거나 합쳐지면, 뒤에 있는 PR도 다시 정리해줘야 하죠. 이 과정을 사람이 직접 하려면 여러 git 명령을 입력해야 하는데 자칫 실수할 위험도 커집니다.
gh-domino: 누구라도 쓸 수 있는 자동화 도구
gh-domino는 복잡한 설정 없이 명령어 한 줄로 바로 써볼 수 있는 도구입니다. 별다른 설정 과정이 필요 없기 때문에 git이나 PR 작업에 익숙하지 않아도 충분히 쉽게 사용할 수 있습니다.
준비: GitHub CLI(gh)가 설치되어 있어야 합니다.
사용법:
미리 결과를 확인하고 싶다면:
gh domino --dry-run실제로 자동 정렬을 하고 싶다면:
gh domino --auto
두 줄만 입력하면 여러 계단식 PR을 한 번에 최신 상태로 맞춰줄 수 있습니다.
예시로 이해하기
다시 한 번, 계단식으로 PR이 쌓인 상황을 가정해봅시다.
PR #102 : 첫 번째 변경(메인 코드에서 시작)
PR #103 : #102 코드 위에 추가 변경
PR #104 : #103 코드 위에 또 다른 변경
#102가 합쳐지면 #103과 #104도 각각 다시 최신 코드에 맞춰줘야 하는데, gh-domino가 이런 작업을 자동으로 처리해줍니다.
계단식 PR 리베이스 과정을 mermaid로 표현하면 다음과 같습니다.
sequenceDiagram
participant Main as 메인 코드
participant PR102 as PR #102
participant PR103 as PR #103
participant PR104 as PR #104
Main->>PR102: 첫 번째 변경 적용
PR102->>PR103: #102 위에 추가 변경
PR103->>PR104: #103 위에 또 추가 변경
Note over PR102,PR104: #102가 반영되면
#103, #104도 최신 코드로 자동 정렬자주 쓰지 않아도 걱정 NO
Stacked PR을 매번 사용하는 건 아니지만, 한번쯤 필요할 때마다 복잡한 git 명령어를 일일이 기억하는 건 쉽지 않습니다. gh-domino는 명령어만 입력하면 되니까 사용법을 잊어버려도 금방 다시 활용할 수 있어요.
설치와 설명은 어디서 확인할까?
상세한 설치 방법과 추가 설명은 gh-domino 안내 문서(README.md)에서 살펴볼 수 있습니다. 설치나 인증 과정도 어렵지 않으니 걱정하지 않으셔도 됩니다.
복잡했던 Stack 관리, 이제 간단하게!
gh-domino 덕분에 Stacked PR 관리는 한결 쉬워집니다. 복잡한 git 명령어와 어려운 설정 없이, 명령어 몇 줄로 최신 상태를 유지해보세요! 저 역시 반복되는 번거로움에서 해방될 수 있었습니다.
효율적인 협업과 코드 관리를 원한다면, gh-domino를 꼭 한 번 사용해보세요!
