Menu
Coddy logo textTech

3-Way 병합

Coddy Terminal 여정의 버전 관리 섹션에 포함된 레슨 — 58개 중 36번째.

두 브랜치가 각각 독립적으로 진행된 경우, Git은 단순히 fast-forward를 수행할 수 없습니다. 대신 3-way merge를 수행합니다. 즉, 공통 조상과 두 브랜치의 끝(tip)을 확인하고, 이를 결합한 새로운 커밋을 생성합니다.

이 새로운 커밋은 병합 커밋(merge commit)입니다. 각 브랜치로부터 하나씩, 총 두 개의 부모를 가집니다:

git switch main
git merge feature -m "Merge feature"

-m 플래그는 병합 커밋 메시지를 직접 제공하므로 Git이 편집기를 열지 않습니다.

대부분의 경우 Git은 파일의 서로 다른 부분을 수정하는 한 양쪽 브랜치의 변경 사항을 자동으로 병합할 수 있습니다. 충돌은 양쪽 브랜치가 동일한 줄을 수정했을 때만 발생하며, 이는 다음 레슨의 주제입니다.

challenge icon

챌린지

중급

top.txt (내용: a)와 bottom.txt (내용: b)가 있는 새 폴더에서 시작합니다.

저장소를 초기화하고 첫 번째 커밋을 만든 후, 다음 단계를 수행하세요:

  1. feature 브랜치를 생성하고 top.txtadded 라인을 추가한 후 커밋합니다.
  2. main 브랜치로 전환하고 bottom.txtadded 라인을 추가한 후 커밋합니다.
  3. Merge feature라는 메시지와 함께 featuremain에 병합(merge)합니다.

git rev-list --count HEAD를 사용하여 HEAD에서 도달 가능한 커밋 수를 출력하세요. 예상되는 카운트는 4 (initial + feature + main + merge)입니다.

치트 시트

두 브랜치가 서로 갈라졌을 때, Git은 두 개의 부모를 가진 새로운 머지 커밋(merge commit)을 생성하며 3-way 머지를 수행합니다:

git switch main
git merge feature -m "Merge feature"

-m 플래그는 편집기를 열지 않고 머지 커밋 메시지를 설정합니다. 두 브랜치가 서로 다른 라인을 수정한 경우라면 Git은 자동으로 머지합니다.

직접 해보기

터미널
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

버전 관리의 모든 레슨