본문 바로가기

Git

브랜치 전략과 병합

Git에는 브랜칭을 활용한 변경 이력 관리 전략이 있습니다.

이번 포스트에서는 브랜치 전략에 대해 알아보겠습니다.


브랜치의 분류

브랜치 전략에서는 브랜치를 5가지로 분류합니다.

main: 서비스로 제공된 브랜치

feature(기능): 새 기능을 개발하는 브랜치

develop(개발): 다음 출시 버전을 개발하는 브랜치

release(배포): 이번 출시 버전을 준비하는 브랜치

hotfix(수정): 배포된 버전에서 문제가 있을지 즉시 수정을 하는 브랜치

 

브랜치의 병합

분류한 브랜치에서 작업이 끝나면 다시 메인 브랜치로 합치는 작업을 합니다.

이러한 작업을 Merge라고 부릅니다.

Merge에는 여러가지 방법이 존재합니다.

 

브랜치 병합 - Fast-Forward

main 브랜치에 작업이 존재하지 않고 다른 브랜치에만 작업이 존재하여 병합하는 것을 의미합니다.

Fast-Forward Merge 방식

더보기

Fast-Forward 실습

작업을 하지 않은 main 브랜치와 새로운 작업이 추가된 새로운 브랜치를 준비합니다.

main 브랜치 커밋 히스토리
feature/login 브랜치 커밋 히스토리

 

새로운 브랜치에서 pull request를 생성합니다.

pull reqeust 생성

 

요청을 병합한 후 커밋 히스토리를 확인해보면 정상적으로 병합된 것을 확인할 수 있습니다.

pull request를 확인하고 merge 작업 수행
main 브랜치 커밋 히스토리(merge 후)

 

브랜치 병합 - 3-way

각 브랜치에 작업이 있을 때 main 브랜치에 두 브랜치의 코드를 병합하는 것을 의미합니다. 

3-way 방법은 같은 파일에 변경 사항이 있을 경우에 충돌이 일어납니다.

3-way Merge 방식

 

병합 충돌 해결하기

같은 파일을 각각의 브랜치에서 수정한 후에 병합해보겠습니다.

feature/payment 브랜치에서 subin.txt 수정
feature/login 브랜치에서 subin.txt 수정

 

병합 과정에서 충돌이 일어나는 것을 마주할 수 있습니다.

자동으로 병합할 수 없다는 안내

 

Git에서는 충돌한 파일을 알려주고 Resolve confilicts를 눌러서 해결할 수 있습니다.

충돌한 부분은 <<<<<<<, =======, >>>>>>> 마크로 표시합니다.

충돌한 파일을 알려준다.
마크로 충돌 부분 표시

 

충돌이 발생한 부분을 적절하게 수정한 후 마크를 제거하면 pull request를 할 수 있습니다.

수동으로 마크를 제거하여 해결


지금까지 Git의 브랜치 전략과 병합하는 방법에 대해서 알아보았습니다.

이번 포스트도 봐주셔서 감사합니다!

'Git' 카테고리의 다른 글

[GitHub] 커밋 컨벤션을 알아보자  (0) 2024.11.27
[GitHub] 깃 이슈 알아보기  (0) 2024.11.26
원격 브랜치 생성  (0) 2024.08.16
Branch 알아보기  (0) 2024.08.14
Github 알아보기  (0) 2024.08.14