Git merge conflict (병합 충돌) 해결 방법
CONFLICT (content): Merge conflict in <file>
증상
git merge 또는 git pull 시 다음 메시지가 뜨고 작업이 멈춥니다.
Auto-merging app.js
CONFLICT (content): Merge conflict in app.js
Automatic merge failed; fix conflicts and then commit the result.
원인
두 브랜치가 같은 파일의 같은 줄을 다르게 수정해서, Git이 자동으로 합칠 수 없습니다. 어느 쪽을 택할지 사람이 정해야 합니다.
해결
1) 충돌 파일 확인
git status # "both modified" 로 표시된 파일들
2) 충돌 마커를 찾아 직접 정리
충돌난 파일을 열면 이런 마커가 있습니다.
<<<<<<< HEAD
const title = '내 변경';
=======
const title = '상대방 변경';
>>>>>>> feature/x
<<<<<<< HEAD~=======: 현재 브랜치 내용=======~>>>>>>>: 병합해 온 브랜치 내용
원하는 형태로 코드를 고치고 마커 3줄(<<<, ===, >>>)을 모두 삭제합니다.
3) 해결 표시 후 마무리
git add <해결한 파일>
git commit # 병합 커밋 완료
되돌리고 싶다면
git merge --abort # 병합 전 상태로 복귀
팁: 충돌이 잦다면 작은 단위로 자주
pull/merge하세요. 에디터(VS Code)의 충돌 해결 UI를 쓰면 "현재/수신/양쪽 수용"을 클릭으로 고를 수 있습니다. 자주 쓰는 명령은 Git 치트시트에 정리돼 있습니다.