머지는 분기된 이력을 병합하는 방법으로 하나의 브랜치 변경 이력을 다른 브랜치에 병합한다.
다음은 병합의 일반적인 절차를 설명한다.
Step 1) 병합될 브랜치로 전환
git checkout master |
Step 2) origin 동기화
git pull origin |
Step 3) 머지
머지 명령를 이용해 Feature 브랜치를 master 브랜치로 병합한다. --no-ff 옵션은 머지 커밋을 생성하고 싶은 경우 지정한다.
git merge [--no-ff] Feature |
Setp 4) Feature branch 삭제
git branch -d Feature |
아래 그림과 같이 머지 대상 (master)에 변경 이력이 없는 상태에서 Feature의 변경 이력을 병합하는 경우를 의미한다.
머지 대상 (본 예의 경우 master)에 변경 이력이 존재하는 상태에서 Feature의 변경 이력을 병합하는 경우를 의미한다.
3-way merge의 경우 동일한 파일에 같은 지점이 변경된 경우 병합 대상 (본 예의 경우 Feature 브랜치)와 master를 병합할 때 충돌이 발생할 수 있다.
이 때 git은 고유한 방법으로 해당 파일 위치에 출동을 표시한다.
$ cat merge.txt <<<<<<< HEAD this is some content to mess with (현재 브랜치 변경 내용) content to append ======= totally different content to merge later >>>>>>> new_branch_to_merge_later |
일반적인 해소 절차는 관련 페이지를 참조한다.