본문으로 건너뛰기
Git · GitHub 기초집LESSON 11

Merge Conflict 원인과 해결

난이도입문 → 초급
예상 시간30분
선수지식이전 강의

11강. Merge Conflict 원인과 해결

1. 이번 강의에서 해결할 문제

Git이 두 변경 중 어느 것을 남길지 판단할 수 없으면 병합을 멈춥니다. 충돌을 오류로 숨기지 않고 사람이 의도한 최종 내용을 선택해 새 커밋으로 기록합니다.

2. 학습 목표

3. 핵심 개념

같은 파일의 같은 줄을 서로 다르게 수정하거나 한쪽이 삭제한 파일을 다른 쪽이 수정하면 자동 선택이 불가능할 수 있습니다. GitHub도 충돌이 남은 PR의 병합을 막습니다. 단순 줄 충돌은 웹에서 가능할 수 있지만 복잡한 충돌은 로컬에서 해결해야 합니다.

4. 단계별 명령어와 예시

충돌 파일: C:\dev\git-learning-site\README.md

PowerShell
Set-Location C:\dev\git-learning-site
git switch main
git merge feature/readme-title
git status
git diff --name-only --diff-filter=U
Select-String -Path README.md -Pattern '<<<<<<<|=======|>>>>>>>'

편집기에서 표식과 불필요한 내용을 제거해 최종 문장을 만든 뒤 실행합니다.

PowerShell
git add README.md
git diff --check
git status
git commit -m "merge: resolve README title conflict"

해결 방향이 불명확하면 커밋하지 말고 git merge --abort로 병합 시작 전으로 돌아갑니다.

5. 명령어가 동작하는 이유

충돌 중 Git은 공통 조상, 현재 브랜치, 병합 대상 버전을 index에 보관합니다. 파일을 수정하고 add하면 사람이 최종 결과를 선택했다는 뜻이 됩니다. merge --abort는 병합이 시작되기 전 상태 복원을 시도합니다.

6. 자주 하는 실수와 안전한 해결법

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

Merge Conflict 원인과 해결 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“Merge Conflict 원인과 해결”의 위험한 선택을 피하려면 어떤 원칙을 적용해야 하나요?
  2. 문제 2“Merge Conflict 원인과 해결” 실습 중 ‘충돌 중 다른 작업 시작’ 상황을 발견했습니다. 본문과 일치하는 설명은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

11강. Merge Conflict 원인과 해결 미완료 상태