병합 충돌
Coddy Terminal 여정의 버전 관리 섹션에 포함된 레슨 — 58개 중 37번째.
만약 두 브랜치가 같은 파일의 같은 줄을 수정했다면, Git은 어느 버전을 유지해야 할지 판단할 수 없습니다. Git은 병합을 일시 중단하고 사용자에게 결정을 요청합니다.
충돌이 발생한 파일에는 두 버전을 모두 보여주는 특수 표시가 추가됩니다:
<<<<<<< HEAD
the version on main
=======
the version on feature
>>>>>>> feature당신의 작업은 파일을 직접 수정하는 것입니다. 한 버전을 선택하거나, 병합하거나, 또는 새로운 내용을 작성하세요. 그런 다음 모든 충돌 표시(<<<, ===, >>> 라인들)를 제거하세요.
파일이 올바르게 보이면, 파일을 스테이징하고 다른 커밋으로 병합을 마무리하세요:
git add notes.txt
git commit -m "Resolve merge conflict in notes"진행 도중에 마음이 바뀌면 전체 과정을 중단하고 병합 전 상태로 되돌아갈 수 있습니다:
git merge --abort챌린지
중급폴더에는 hello라는 내용이 포함된 notes.txt 파일이 있습니다.
저장소를 초기화하고 초기 파일을 커밋하세요. alt 브랜치를 생성하고, notes.txt의 내용을 hi from alt로 변경한 후 커밋하세요.
main 브랜치로 다시 전환하고, notes.txt의 내용을 hi from main으로 변경한 후 커밋하세요.
alt 브랜치를 main 브랜치로 병합(merge)을 시도하세요. 병합 충돌이 발생할 것입니다. git merge --abort 명령어로 병합을 취소한 다음, cat 명령어로 notes.txt의 내용을 출력하여 파일이 main 버전으로 돌아왔는지 확인하세요.
치트 시트
두 브랜치가 동일한 줄을 수정하면, Git은 병합을 중단하고 파일에 충돌 표시를 추가합니다:
<<<<<<< HEAD
the version on main
=======
the version on feature
>>>>>>> feature파일을 원하는 결과로 수정하고, 모든 표시를 제거한 다음, 스테이징하고 커밋하세요:
git add notes.txt
git commit -m "Resolve merge conflict in notes"병합을 취소하고 병합 전 상태로 복구하려면:
git merge --abort직접 해보기
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.