06. git error
git 오류인가
코드 블록의 Try it Yourself 버튼으로 직접 실행할 수 있다.
구문
1. Git Error
2. push 도중
reject*

2.1. pull 할때
Your local changes to the following files would be overwritten by merge

현재 로컬에서 수정한 파일이 원격 저장소(Remote)의 최신 변경 사항과 겹쳐서 발생
2.1.1. 해결
-
현재 작업 내용을 유지하고 싶을 때 : 작업 중인 내용을 임시 저장소에 옮겨두었다가
pull을 받은 후 다시 가져온다- 임시 저장:
git stash명령어를 사용해 수정 사항을 잠시 보관. - 업데이트:
git pull을 실행하여 원격의 변경 사항을 가져옴. - 다시 가져오기:
git stash pop을 실행해 보관했던 내 작업을 다시 불러옴.
- 임시 저장:
-
현재 작업 내용이 확정된 상태일 때 : 수정한 내용을 공식적으로 기록한 뒤 합치는 방법이다.
git add .및git commit -m "작업 메시지"를 실행하여 로컬 변경 사항을 커밋.- 그 후
git pull을 하면 원격 코드와 내 코드가 자동으로 병합 (충돌 발생 시 수동 수정 필요).
-
로컬 수정 사항을 완전히 버리고 싶을 때 : 원격 저장소의 내용을 기준으로 로컬 파일을 강제로 덮어쓰는 방법
git restore <파일명>(특정 파일만 되돌리기) 또는git restore .(전체 되돌리기)을 사용- 원격 상태로 완전히 일치시키려면
git fetch --all후git reset --hard origin/<브랜치명>을 실행
3. vscode 화면이 이상해짐
3.1. pull 하고 났더니 아래처럼 나올때

**코드 충돌(Merge Conflict)**이 발생
git 에서 원격 저장소의 내용과 내가 수정한 내용 중 무엇이 맞는지 모르겠으니 직접 골라달라는 의미
해결:
- Accept Current Change: 서버 내용은 무시하고, 내가 수정한 코드만 남긴다.
- Accept Incoming Change: 내 작업 내용을 버리고, 서버에 있는 최신 코드만 남긴다.
- Accept Both Changes: 두 버전의 코드를 일단 모두 남긴다. (이후 수동으로 코드를 정리해야 한다.)
- Compare Changes: 두 차이점을 나란히 비교해서 보여준다.
오른쪽 하단의 [Resolve in Merge Editor] 버튼을 누르면, 왼쪽/오른쪽 화면을 보면서 더 직관적으로 코드를 선택할 수 있는 전용 창이 열린다.
1~4 중 하나로 선택하여 코드를 병합후 add부터 push 진행
3.2. 터미널에 입력이 안된다
Please enter a commit message to explain why this merge is necessary
터미널에 아래와 같이 뜬다
아무것도 써지지 않아
ℹ️INFO
vim 에디터가 열린 상태다. git pull 또는 git merge 시 머지 커밋 메시지를 입력하라고 자동으로 열린 것이다.
- ESC 키 누르고 → :wq 입력 → Enter
명령어 의미 :wq저장하고 나가기 (머지 진행) :q!저장 안 하고 강제 종료 (머지 취소)
📝NOTE
앞으로 vim 안 뜨게 하려면
git config --global core.editor "code --wait"