Dev/Git

3 way merge 란?

린네의 2024. 11. 24. 19:09

 

3 Way Merge 의 동작 방식 

 

프로젝트를 진행하는 과정에서 git을 사용하여 버전 관리를 할 때, 일반적으로 기능별로 feature branch를 나누고 작업을 하게 된다.  기능

구현의 리뷰가 완료 되면  feature branch를 main branch (혹은 develop)에 merge하게 될 것이다.

 

이 때 git이 제공하는 병합 방법중에 3 way merge가 있다.

 

3 way merge는 다음과 같은 세가지 요소를 가진다.

 

  • 병합대상 브랜치  (A)
  • Base (A,B 브랜치가 공통으로 가지고 있는 마지막 commit)
  • 병합 브랜치 (B)

만약 내가  어떠한 base 브랜치로 부터 feature/A-branch와 feature/B-branch 생성했고,   A-branch를  B-branch에 merge 하고 싶다면 두 브랜치의 마지막 공통소스인 Base commit 시점의 소스가 기준이 되어 각각 작업된 A,B 소스를 적절히 merge 할 수 있게 된다.

 

공통 기준인 base commit이 제공 되기 때문에, 병렬로 작성된 A,B의 변경점을 합칠 때 어떤 부분이 변경되었는지에 대해 보다 편하게 병합할 수 있다는 이점이 있다.

 

만약 A,B 브랜치간에 차이점이 없다면 git은 자동으로 병합을 수행한다.