[Git] Fast-Forward 병합

Bam·2022년 3월 20일
0

Git

목록 보기
27/32
post-thumbnail

예전 포스트에서 두 브랜치를 병합하는 방법을 간단하게만 다뤘습니다. 오늘 다룰 병합 방식은 Fast-Forward 병합 방식인데, 이 병합 방식이 무엇이고, 어떻게 이루어지는지 알아보도록하겠습니다.

Fast-Forward

Fast-Forward는 가장 간단한 병합 방식입니다. 이 방식은 혼자 개발하는 경우에 사용되는 병합방법입니다. 혼자서 프로젝트를 개발하다보면 일반적으로는 코드의 작성, 수정, 브랜치가 순차를 가지고 이루어집니다. --graph 등의 옵션으로 본다면, 여러 브랜치를 나누게 되더라도 결국 순차적으로 이루어짐을 볼 수 있습니다. 이렇게 순차적인 커밋 기록들에 대해 병합하는 방법을 Fast-Forward 병합이라고 부릅니다.

Fast-Forward 실습

위와 같은 파일 구조를 가진 디렉토리에서 실습을 진행합니다. 새로 만들어서 진행해도 상관없습니다.

브랜치 생성

먼저 sub라는 이름의 브랜치를 만들었습니다. 그리고 생성한 브랜치로 이동해줍니다.

git branch sub

git checkout sub

aee83567659bce6e867104257638dbb2fc6b2b2c의 커밋ID를 가진 커밋에서 분기를 하게 되었습니다.

다음으로 이 디렉토리 내의 파일을 아무거나 열고 아무렇게나 수정해주세요. 파일을 새로만들거나 해도 좋습니다. 저는 두 개의 파일을 수정하고 각각 따로 커밋을 진행했습니다.위와같이 진행했을 때 현재 커밋의 상태는 다음과 같습니다.

브랜치 병합

그럼 이제 나뉘어진 브랜치를 병합할 차례입니다. 위 그림에서 보시다시피 브랜치 이후 갈래가 더 나뉘어 지지 않고 브랜치에서 작업이 이루어지죠? 그래서 Fast-Forward 병합은 따로 신경써야할 사항이 없습니다. git merge 명령을 통해 병합을 수행하면 됩니다.

이때 중요한 점은 merge 명령을 수행하는 곳이 현재 브랜치 위치이기 때문에 master에다 지금 만든 브랜치를 병합시키려면 git checkout으로 master 브랜치로 이동한 후에 병합을 실시해야한다는 점 입니다.

마스터 브랜치로 이동하고 merge를 해보겠습니다.커밋 기록을 확인하기 위해 git log를 찍어보면 브랜치에서 작업했던 커밋기록이 마스터 브랜치의 최신커밋으로 변경되었음을 볼 수 있습니다.


정리하자면 병합이전의 커밋 상태는 아래 그림과 같았습니다.이 상태에서 Fast-Forward 병합을 실시하면 다음과 같이 이어지게 되는 것 입니다.


오늘은 가장 간단한 병합 형태인 Fast-Forward에 대해 알아봤습니다. 다음 포스트에서는 좀 더 복잡한 형태인 3-Way Merge에 대해서 알아보도록 하겠습니다.

0개의 댓글