SQUASH
-
브랜치를 합치는 세 가지 방법 — merge, rebase, squash는 히스토리 모양이 다르다IT 2026. 8. 6. 21:00
git을 처음 배우는 지인이 물었다. "GitHub에서 PR(Pull Request, 브랜치를 합쳐 달라고 요청하는 기능) 머지 버튼을 누르려는데 옵션이 세 개나 있어. Merge commit, Squash and merge, Rebase and merge. 뭘 눌러야 해?" 나도 처음엔 아무거나 눌렀다. 셋 다 "브랜치가 합쳐진다"는 결과는 같아 보이기 때문이다. 그런데 이 세 버튼은 합쳐진 뒤 커밋 히스토리의 모양이 완전히 다르다. 그리고 그 모양의 차이가 몇 달 뒤 "이 버그가 언제 들어왔지?"를 추적할 때 체감 난이도를 가른다.이 글은 세 방식이 커밋 그래프에서 실제로 무슨 일을 하는지를 그림으로 비교한다. 결론부터 말하면 셋의 차이는 단 하나의 질문으로 요약된다 — "작업 과정의 역사를 보존할 ..