fast-forward merge와 3-way merge의 비교분석

comparing fast-forward merge to 3-way merge
Dec 21, 2023
fast-forward merge와 3-way merge의 비교분석

대표적인 merge의 종류인 fast-forward3-way merge에 대해서 살펴보자

1. fast-forward merge

notion image
그림에서 보이는 바와 같이 merge하려고 하는 두 branch(main, likelion)은 동일 선상에 위치하고 있다.이 때 두 브랜치는 fast-forward 상태에 있다고 한다.
# main branch에 위치한 상태에서 # merg의 옵션을 붙이지 않는다면 기본적으로 fast-forward git merge likelion git merge --ff likelion
fast-forward merge
fast-forward merge
코드를 실행하고 나면 그림과 같이 main branch가 앞서있는 likelion 브랜치로 병합된다. 마치 빨리감기를 한 것 처럼 보여서 fast-forward라 불린다.
  • fast-forward merge는 커밋을 생성하지 않는다!!
 

2. 3-way merge

notion image
위 그림에서 main, likelion 두 브랜치 모두 base에서 분기해 나간 상태가 되었다. 두 브랜치 중 어느 것도 base에 위치하지 않는다.
 
# main branch에 위치한 상태에서 # 3-way merge method (non-fasst-for) git merge --no-ff likelion
3-way merge
3-way merge
3-way라고 불리는 이유는 base / main/ likelion 이 세 개의 항목들을 참조하여 merge를 하기 때문이다.
3-way merge는 base와 각 브랜치가 참조하는 commit을 고려하여 자동 병합을 진행한다. 이 때, merge conflict가 발생할 수 있는데 이 충돌은 수동으로 해결해줘야 한다.
 
되도록이면 commit을 할 수 있는 3-way merge를 이용할 것!!
Share article

samuel-dev-world