병합
브랜치를 생성하는 목적은 원본 코드에 영향을 주지 않고 분리하여 개발하기 위해서입니다.
독립된 브랜치에서 개발 작업이 끝나면 다시 원본 브랜치에 작업한 결과를 반영해야 합니다.
분리된 브랜치를 한 브랜치로 합치는 작업을 병합(합치기)이라고 한다.
브랜치 병합 - fast forward 병합
Fast forward 병합은 병합할 하나의 브랜치 파일을 기준 브랜치로 복사하여 수정된 파일을 원본에 그대로 적용한 병합 방식입니다.
fast-forward 병합 실습
우리는 브랜치를 만들어 feature 브랜치에 기능을 추가했습니다.
하지만 소스트리에서 브랜치를 확인하면 브랜치 경로가 일직선으로 1개만 있습니다.
서로 다른 브랜치이지만 순차적으로 커밋을 했기 때문에 일직선으로 보이는 것입니다.
이러한 모양의 브랜치에서 병합 작업을 할 때는 Fast-Forward 방식의 알고리즘이 적용됩니다.
병합과 위치 이동 명령어 (merge, checkout)
merge 명령어는 현재 브랜치를 기준으로 다른 브랜치의 모든 커밋을 병합합니다.
$ git merge 브랜치이름
브랜치를 병합하려면 기준과 대상이 있어야 합니다.
기준은 체크아웃된 현재 브랜치이다. 따라서 병합하려면 먼저 기준이 되는 브랜치로 이동해야 합니다.
우리는 기본 브랜치(master 혹은 main)에서 feature 브랜치로 이동하여 작업했습니다.
작업한 feature 브랜치를 다시 기본 브랜치로 병합할 것입니다.
병합을 하려면 먼저 기본 브랜치로 체크아웃하여 이동해야 합니다.
$ git checkout master
병합을 할 수 있게 기준 브랜치로 이동했습니다.
Fast-Forward 병합 적용
브랜치 병합 - 3-way 병합
hotfix 브랜치에 새로운 커밋이 2개 추가되었습니다. 지금까지 hotfix 브랜치에서 진행한 수정은 앞에서 실습한 Fast-Forward 병합과 유사합니다. Fast-Forward 병합에서는 생성한 브랜치에만 수정과 커밋을 했고, 원본 master 브랜치에서는 어떤 작업도 하지 않았습니다.
'Devlopment > GIT' 카테고리의 다른 글
[GIT/SpringBoot] SpringBoot 민감정보 gitgnore 숨기기 (0) | 2024.11.05 |
---|---|
[GIT] 브랜치(Branch) (0) | 2024.01.09 |
[GIT] 파일 업로드와 커밋, 그리고 원격 저장소에 전송하기 (0) | 2024.01.09 |
[GIT] GIT 기초 및 저장소 생성 (0) | 2024.01.09 |