git branch merge 방법

CHOI·2024년 3월 30일

Git

목록 보기
2/2

코드잇 스프린트 6기에서 진행한 미션입니다.

Git branch를 merge하는 방법에 대해 알아보았다.

merge

가장 일반적인 형태의 merge. 베이스 브랜치에서 뻗어나왔던 브랜치를 베이스 브랜치에 다시 merge하여 합친다. 분기했던 모든 브랜치의 history가 남는다.

fast forward란?

이미지와 같이 베이스 브랜치에서 feature 브랜치로 새 가지를 뻗은 이후 병합하려 할 때, 베이스 브랜치가 이후에 아무런 수정사항(커밋)이 없을 경우 merge 했을 시 분기된 브랜치가 마치 기존 베이스 브랜치에서 작업된 것 처럼 history가 남게 되는 상황을 fast forward라 한다. 이를 방지하고자 한다면 merge 시 --no-ff 라는 추가 명령어를 삽입해야 한다.(기본값이 fast forward로 되어있기 때문)

squash and merge

feature 브랜치에서 작업한 결과를 베이스 브랜치의 하나의 커밋에 축소시키고 싶을 경우 사용하는 merge 방식이다. 지저분한 히스토리를 없애준다는 장점이 있지만 history가 남지 않기 때문에 수정하고 싶을 때 오류가 발생할 수 있다.

rebase and merge

rebase를 하게 되면 feature 브랜치에서 작업한 history가 마치 메인 브랜치에서 작업을 한 듯, 메인 브랜치 뒤에 옮겨붙게 된다. 정렬을 새로 하는 것이고 오류가 발생할 가능성이 높기 때문에 추천되는 방식이 아니다.

profile
개발자를 목표로!

0개의 댓글