[GIT] 3 - way 병합

2022. 8. 10. 04:36GIT

여러 개발자와 협업으로 작업하는 경우 대부분 3-way 병합을 사용한다.

 

브랜치 생성과 수정 작업

새 브랜치 hotfix에서 index.html 코드를 두 번 수정하여 각각 커밋을 진행하였다.

hotfix 브랜치에서 두 번 커밋

 

마스터 변경

master 브랜치에도 새로운 커밋 두 번 추가하였다.

브랜치 경로 변화

브랜치 경로에서 커밋을 한 시점을 순차적으로 표시한 것을 볼 수 있다.

 

공통 조상

두 브랜치를 병합하려면 분할 기준인 공통 커밋을 찾아야한다.

공통 조상 커밋이라 하는데 공통 조상 커밋까지 포함하는 브랜치와 분기된 새로운 두 브랜치, 이렇게 3개를 하나로 병합해야 한다.

깃은 공통 조상 커밋을 자동으로 찾아준다.

 

병합 커밋

공통 조상 커밋을 기준으로 브랜치를 병합한다.

병합을 성공적으로 완료하면 새로운 커밋을 추가로 하나 생성한다.

새로 생성된 커밋을 병합 커밋이라 부른다.

병합 커밋은 부모 커밋이 2개라는 특징이 있다.

 

3 - way 병합을 하려면 공통 커밋을 포함하고 있는 브랜치로 체크아웃을 해야한다.

hotfix 브랜치 병합 성공

3 - way 병합할 때 메시지 입력하라고 vi 에디터가 오픈된다.

기본 메시지가 작성되어 있어 바로 저장해도 된다.

브랜치 경로

 

병합 메시지

3-way 병합할 때 병합 메시지를 작성해야 하는데 vi 에디터가 자동으로 오픈되는 것 같다.

이전에는 병합 메시지를 작성하려고 에디터를 오픈하는 옵션이 있는데 --edit를 쓰면 된다.

$ git merge 브랜치이름 --edit

이 옵션을 사용하지 않아도 vi 에디터가 오픈되는 것 같다. (디폴트로 설정이 되어 있나..)

 

 

728x90

'GIT' 카테고리의 다른 글

[GIT] 충돌  (0) 2022.08.10
[GIT] 브랜치 삭제  (0) 2022.08.10
[GIT] Fast-Forward 병합  (0) 2022.08.10
[GIT] 병합  (0) 2022.08.10
[GIT] 워킹 디렉토리 청소  (0) 2022.08.08