Header Banner
GG Logo

Future Engineering

기술의 최전선을 기록합니다.

기술 자료/Git/Merge란? Git에서의 통합 프로세스 이해하기

Merge란? Git에서의 통합 프로세스 이해하기

Git약 1년 전

Merge란 무엇인가요?

Merge는 Git에서 두 개 이상의 브랜치를 하나로 통합하는 과정입니다. 이는 다양한 개발자들이 개별적으로 작업한 코드를 하나의 통합된 코드베이스로 결합하는 데 필수적인 과정입니다. Git에서의 Merge는 협업 개발의 핵심이며, 여러 명의 개발자가 동시에 작업할 수 있게 합니다.

 

Merge의 종류

Git에서는 다양한 방법으로 브랜치를 병합할 수 있으며, 그 중 가장 일반적인 두 가지는 다음과 같습니다. (Three-Way Merge 집중해야 합니다. 혼자 작업하다보면 Fast-Forward Merge로 이어지는 경우가 많습니다.)

 

  1. Fast-Forward Merge

    • 브랜치 사이에 추가된 커밋이 없을 때, Git은 단순히 현재 브랜치를 병합할 브랜치의 커밋으로 "이동"시킵니다.

    • 이 방식은 커밋 기록을 깔끔하게 유지하지만, 모든 브랜치가 직선적인 히스토리를 가지게 됩니다.

 

  1. Three-Way Merge

    • 두 브랜치가 서로 다른 커밋을 가질 때 사용됩니다.

    • Git은 공통 조상(ancestor) 커밋을 기반으로 양쪽 브랜치의 변경 사항을 병합합니다.

    • 이 방식은 복잡한 브랜치 히스토리를 허용하며, 여러 개발자가 동시에 작업하는 프로젝트에서 자주 사용됩니다.

 

Merge 과정에서의 충돌 (Conflict) 처리

Merge 과정에서 두 브랜치가 동일한 파일의 동일한 부분을 수정한 경우 충돌(conflict)이 발생할 수 있습니다. Git은 자동으로 병합할 수 없는 경우, 사용자가 수동으로 충돌을 해결하도록 요청합니다.

 

충돌 해결 방법

즉, 충돌이 발생하면 사용자가 내용을 확인 후 Control해야 합니다.

  1. 충돌된 파일 확인

    • Git은 충돌이 발생한 파일을 명확히 표시합니다.

  2. 수동으로 수정

    • 충돌된 부분을 수동으로 수정하여 올바른 코드를 선택합니다.

  3. 수정 사항 커밋

    • 충돌을 해결한 후 git add 명령어로 파일을 스테이징하고, git commit으로 변경 사항을 커밋합니다.

 

마무리

Merge는 Git에서 협업 작업을 원활하게 진행할 수 있도록 하는 중요한 기능입니다.