Search
castle

image

1. Merging Branches

여러 branch를 하나로 합치는 기능 (보통 Master로 합침)

  • 특정 commit이 아닌 branch를 병합
  • 현재 head의 branch를 병합 -> 병합하고 싶은 branch로 이동해주어야 함
    >git switch master )

>git merge **<branch-name>
branch-name의 branch를 현재 Head가 가리키는 branch에 병합

1) 병합할 branch의 commit이 없을 경우

image

병합 전

image

병합 후

2) 병합할 branch의 commit이 있을 경우

  • 병합된 commit은 두 개의 부모 commit을 갖습니다.

※ 병합할 2개의 commit이 겹치는 내용이 없을 경우, 문제없이 병합이 됩니다.
하지만, 겹치는 내용이 있으면, 병합시 충돌이 발생합니다.

image

병합 전

image

병합 후

2. 병합 중 충돌 해결하기

image

  • 충돌이 발생하면, Git은 충돌이 된 파일을 알려줍니다.
  • 충돌이 발생한 파일을 열어 편집해줍니다.
  • 변경 사항을 commit합니다.

  • VS Code를 이용하면 여러가지 옵션을 쉽게 사용하여 고칠 수 있습니다.

image

Accept Current Change: 현재 변경 사항을 수락하고 충돌을 해결합니다. 충돌이 발생한 현재 라인의 변경 사항을 그대로 유지합니다.

Accept Incoming Change: 다른 브랜치(일반적으로 병합 대상 브랜치)의 변경 사항을 수락하고 충돌을 해결합니다. Accept Incoming Change를 선택하면 충돌이 발생한 현재 라인을 선택한 브랜치의 변경 사항으로 대체합니다.

Accept Both Changes: 현재 변경 사항과 다른 브랜치의 변경 사항을 모두 수락하고 충돌을 해결합니다. 충돌이 발생한 현재 라인에 대해 두 변경 사항을 모두 유지합니다. 이 경우, Git은 변경 사항을 모두 포함하는 병합 커밋을 만듭니다.

Compare Changes: 변경 사항을 비교하고 수동으로 충돌을 해결할 수 있습니다. 변경 사항을 쉽게 비교할 수 있는 비교 도구가 열립니다.

left
right

C

Contents