이력 선형 유지 Rebase + 단건 PR Squash + 충돌 순서 처리 차이 + 복구 시 브랜치 보관 경험
팀 프로젝트에서 Git 협업 방식을 논의하면서 Rebase merge와 Squash merge의 차이를 직접 경험했습니다. Rebase merge에서는 커밋 이력이 선형으로 유지되면서 각 작업 단계가 그대로 남는 방식이라 나중에 특정 변경을 추적하기 쉽다는 걸 배웠습니다. Squash merge에서는 브랜치 전체의 커밋을 하나로 합쳐서 병합하는 방식이라 PR 단위로 이력이 정리되어 main 브랜치가 깔끔해지는 장점이 있었습니다. 충돌 측면에서는 Rebase는 각 커밋마다 충돌이 생기면 순서대로 해결해야 하는 번거로움이 있다는 걸 경험했습니다. 복구 측면에서는 Squash merge는 병합 후 원래 커밋으로 복구가 어렵기 때문에 브랜치를 미리 보관해두는 습관이 중요하다는 걸 배웠습니다. 팀 내에서는 기능 단위로 하나의 커밋으로 관리하는 Squash 방식이 코드 리뷰 이후 히스토리를 깔끔하게 유지하는 데 편리했습니다.
Git 전략은 팀이 어떤 이력을 중요하게 여기느냐에 따라 선택이 달라지는 자리라는 걸 그때 배웠습니다.