ADR-0004: Squash 전용 머지¶
- 상태: 대체됨 (→ ADR-0007)
- 날짜: 2026-06-21
대체됨. 장수 브랜치
dev를 Squash로main에 머지하면dev/main이 발산하는 문제가 드러나, 머지 전략을 경계별로 나눈 ADR-0007로 대체되었다. 아래 본문은 당시 결정 기록으로 남긴다.
맥락¶
모노레포에서 작은 PR을 지향한다. main/dev 히스토리가 읽기 쉽고 되돌리기 쉬워야 한다.
PR 안의 중간 커밋(작업 흔적)이 통합 브랜치 히스토리를 어지럽히는 것을 막아야 한다.
결정¶
Squash 머지만 허용한다. Merge commit·Rebase 머지는 사용하지 않는다. - PR 하나 = 커밋 하나 = 되돌릴 수 있는 단위. - Squash 시 PR 제목이 최종 커밋 메시지가 되므로, PR 제목은 Conventional Commits 형식([[0003-branch-strategy]]와 함께 git-conventions.md 참고)을 정확히 따른다. - GitHub 저장소 설정에서 Squash만 켜고 나머지 머지 방식은 끈다(4단계 규칙 강제 시).
대안¶
- Merge commit — 통합 히스토리에 PR 내부 커밋과 머지 커밋이 모두 남아 노이즈가 크다.
- Rebase 머지 — PR이 여러 커밋으로 흩어져 "PR 단위 롤백"이 어렵다.
결과¶
main/dev가 선형 히스토리가 되어 추적과revert가 단순하다.- PR을 작게 유지하도록 자연히 압박한다.
- PR 내부 중간 커밋은 자유롭게 쌓아도 되지만, PR 제목은 정확해야 한다.