Git 병합 방식 정리

git

부트캠프에서는 매주 토요일마다 주어진 주제를 정리해 위클리 페이퍼를 작성하고, 팀원들과 함께 의견을 나누는 시간을 갖는다. 이번 주 주제는 Git에서 branch merge 방법들과 각 방법의 특징이었다. 그래서 Git의 대표적인 병합 방식 세 가지를 정리해 보았다.

Fast-forward Merge

  • 개념: 브랜치에 다른 변경이 없을 때, 단순히 포인터만 이동하는 방식이다.
  • 장점: 커밋 히스토리가 깔끔하게 유지된다.
  • 단점: 브랜치가 따로 분기되었다는 기록이 남지 않는다.
  • 활용: 작은 기능이나 간단한 수정 사항을 병합할 때 주로 사용된다.

3-way Merge

  • 개념: 공통 조상(commit)을 기준으로 새로운 merge commit을 생성한다.
  • 장점: 어떤 브랜치가 언제 합쳐졌는지 기록이 명확하게 남는다.
  • 단점: 커밋 히스토리가 다소 복잡해질 수 있다.
  • 활용: 협업 프로젝트에서 병합 이력을 관리해야 할 때 많이 사용된다.

Squash Merge

  • 개념: 여러 커밋을 하나의 커밋으로 압축해 병합하는 방식이다.
  • 장점: 메인 브랜치를 깔끔하게 유지할 수 있다.
  • 단점: 세부 개발 이력은 사라진다.
  • 활용: 오픈소스 기여나 기능 단위로 이력을 정리하고 싶을 때 사용된다.

정리하며

작은 기능을 추가할 때는 Fast-forward, 협업 프로젝트에서는 3-way Merge, 그리고 기록을 단순화하고 싶을 때는 Squash Merge가 적합하다.