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은 자동으로 병합을 수행한다.