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은 자동으로 병합을 수행한다.
'Dev > Git' 카테고리의 다른 글
Cherry-pick과 Rebase, Fast-forward - 병합커밋 없이 git history 깔끔하게 하는 방법 (0) | 2024.11.24 |
---|---|
git rm 명령어를 통해 파일 삭제 하기 (0) | 2023.12.06 |
git fetch 와 push 차이 (0) | 2023.12.06 |
local 에 있는 폴더를 git 에 한번에 올리기 (1) | 2023.12.06 |
git online repository 연결하기 (0) | 2023.11.30 |