2P by a1eng0 2일전 | ★ favorite | 댓글 2개
  • GitHub 에서 stacked PR을 자동으로 rebase 해주는 GitHub CLI extension 도구
  • Graphite 나 stacked-pr 같은 멋진 도구들이 있지만, 이들의 진입장벽은 너무 높음
    • Stacked PR을 git이 아닌 해당 도구를 이용해서만 올려야한다던가
    • 로컬 구성 파일의 옵션들이 아주 많음
  • Zero-configuration 과, GitHub의 PR 기능만으로 충분한 아주 간단한 rebase 도구가 필요하여 직접 개발

예시

다음과 같은 Stacked PR이 존재하는 상황:

  • #102 (main <- stack-1)
  • #103 (stack-1 <- stack-2)
  • #104 (stack-2 <- stack-3)

PR #102 를 main 에 머지한 이후, #103과 #104 PR을 rebase 해주어야함.

  • 단 두 개의 PR만 rebase 하는 작업도 상당히 귀찮은 작업이며,
  • 실제로 #102 에 추가적인 커밋이 들어가는 등의 이유로 인해 graph가 복잡해진 경우, 공통 부모를 찾는 git 명령어를 기억 해내야하는건 매우 골치아픈 일임
  • 또한 stacked PR은 자주 사용되는 상황이 아니라, 종종 필요한 경우에만 사용되기에 더더욱 잊기 쉬움

다음의 명령어를 통해 간단히 rebase를 자동으로 수행 가능:

gh domino --dry-run  
gh domino [--auto]  

더 자세한 예제는 README.md 에서 확인 가능합니다.

엇 github에서 자동으로 해주는줄 알았는데 아닌가요?!

GitHub에서 제공하는 safe delete branch 기능을 이용하면 base branch는 자동으로 바꿔주지만, squash merge의 경우 git history 연관이 앖어 conflict 상태가 됩니다!

또한 safe delete를 사용하지 않고 git으로 브랜치를 직접 삭제하는 경우도 base branch를 바꿔야하는 귀찮음이 있고요!