개발/Git

Git Merge 란? 3-way-merge에 대하여

해새채 2025. 8. 21. 16:59

평소 git을 써본 사람이라면 merge를 당연히 사용해 봤을 거고

merge를 하면서 발생하는 충돌을 겪어본 사람이 많을거다 그게 바로 나예요~

다시는 실수 없도록 merge에 대해 공부해봤다


Merge 란?

브랜치와 브랜치를 합치는 과정을 말한다.


Merge과정에서 왜 충돌이 일어나는가?

merge할 브랜치가 동일한 코드를 수정했을 경우 발생한다.


Fast Forward Merge란?

브랜치 간 병합 시 현재 브랜치의 Head Commit이 병합하려는 브랜치의 Head Commit으로 이동하는 병합 방식이다.


3-way-merge 란?

내가 작업하는 브랜치의 커밋다른 개발자가 작업하는 브랜치의 커밋두 브랜치의 공통 분기점이 되는 공통 커밋 세 가지의 커밋이 남게 된다. 이런 경우의 병합을 세 브랜치들을 종합해서 병합한다하여 3-way-merge 라고 한다.

 

3-way-merge 는 특히나 협업 때 많이 사용하는 merge방법이니 꼭 공부해두자


 

3-way-merge 방법

 

 git merge [merge할 브랜치 명]

 

실습을 해보자면

'gitignore 생성' 이라는 커밋에서 main 브랜치에서 내용 수정 후 html 기본구조라는 커밋을 작성하고

docs 브랜치로 이동 후 ff병합이라는 커밋으로 내용을 수정 하고 main브랜치에서 docs 커밋을 merge 시켜봤다.

 

main브랜치에서 입력한 명령어는 아래와 같다.

git merge docs

 

이 과정을 bash에서 확인해보면 다음과 같이 나온다.

docs에서 변경한 내용을 main브랜치에 merge

 

 

그래프를 확인해보면 merge가 잘 된 것을 확인 할 수 있다.

'개발 > Git' 카테고리의 다른 글

Git checkout 과 switch의 차이  (3) 2025.08.18