Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

Git 오류 해결: '끌어오기(Pull)가 불가능합니다' — 병합되지 않은 파일 문제

Git을 사용하다 보면 가끔 원인을 파악하기 어려운 오류 메시지를 마주하게 됩니다. 이 글에서는 버전 관리 작업 중 자주 발생하는 오류 하나를 살펴보고, 실질적인 해결 방법을 단계별로 안내해 드리겠습니다.

다음과 같은 오류 메시지를 본 적이 있으신가요?

Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>'
as appropriate to mark resolution, or use 'git commit -a'.

오류가 발생하는 원인

이 오류는 작업 디렉터리에 아직 해결되지 않은 병합 충돌(merge conflict)이 있는 파일이 존재할 때 발생합니다. Git은 충돌 상태가 정리되기 전까지는 원격 저장소의 변경 사항을 안전하게 가져올 수 없기 때문에, 먼저 해당 파일들을 확인하고 충돌 부분을 수정한 뒤, 파일을 스테이징(staging)하고 커밋하여 '충돌이 해결되었음'을 Git에 알려줘야 합니다.

해결 방법

1단계: 현재 상태 확인하기

가장 먼저 할 일은 명령줄에서 git status를 실행하는 것입니다. 이 명령은 어떤 파일들이 병합되지 않은 상태인지 정확히 알려주며, 출력 결과는 대략 다음과 같습니다.

Unmerged paths:
	use 'git add/rm <file>' to update what will be committed
	[파일 목록]

2단계: 병합 충돌 검토하기

팀 동료와 함께 프로젝트를 진행 중이라면, 충돌은 동료가 작성한 코드와 관련된 경우가 많습니다. 실수로 중요한 코드를 삭제하거나 덮어쓰는 일이 없도록, 충돌이 발생한 부분을 동료와 함께 꼼꼼히 검토하는 것이 좋습니다.

3단계: 충돌 해결 후 커밋하기

모든 병합 충돌을 해결했다면, git add/rm <file> 명령으로 해당 파일을 스테이징하거나, 간편하게 git commit -a 명령으로 변경된 모든 파일을 한 번에 커밋할 수 있습니다.

4단계: 원격 저장소에서 변경 사항 가져오기

이제 충돌이 모두 정리되었으므로, 다음 명령을 실행하여 원격 저장소의 최신 변경 사항을 정상적으로 가져올 수 있습니다.

git pull origin [master | main | <브랜치 이름>]

이처럼 'Pull is not possible' 오류는 대부분 해결되지 않은 병합 충돌 때문에 발생합니다. git status로 충돌 파일을 확인하고, 충돌을 정리한 뒤 커밋하는 순서만 기억하면 어렵지 않게 해결할 수 있습니다.