dev.syw
Node.js · 실행

Git merge conflict (병합 충돌) 해결 방법

CONFLICT (content): Merge conflict in <file>

#Git#merge#conflict#협업

증상

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

원하는 형태로 코드를 고치고 마커 3줄(<<<, ===, >>>)을 모두 삭제합니다.

3) 해결 표시 후 마무리

git add <해결한 파일>
git commit            # 병합 커밋 완료

되돌리고 싶다면

git merge --abort     # 병합 전 상태로 복귀

팁: 충돌이 잦다면 작은 단위로 자주 pull/merge 하세요. 에디터(VS Code)의 충돌 해결 UI를 쓰면 "현재/수신/양쪽 수용"을 클릭으로 고를 수 있습니다. 자주 쓰는 명령은 Git 치트시트에 정리돼 있습니다.

← 에러 해결 모음으로 돌아가기