🚧 Git Pull 안 될 때 강제로 해결하는 방법

💡 에러 상황 예시

git pull 할 때 이런 메시지 많이 보지?

error: Your local changes to the following files would be overwritten by merge:

로컬에서 수정한 파일이 있는데, pull을 하면 덮어쓰게 되니까 Git이 막는 거야.

 

🛠️ 해결 방법들 (상황별 정리)

 

✅ 1. 그냥 서버에 맞춰 덮어쓰기(Pull 강제 덮어쓰기)

 
git fetch --all git reset --hard origin/main
  • git fetch --all                                       : 최신 변경사항 가져오기
  • git reset --hard origin/main                 : 원격 저장소의 내용을 그대로 덮어쓰기

🔥 이것도 로컬 변경사항 사라지니 꼭 백업하거나 신중하게!

 

✅ 2. 로컬 수정사항 버릴 때 (진짜 깔끔하게 초기화하고 싶을 때)

git reset --hard HEAD git pull
  • git reset --hard HEAD: 현재 브랜치를 마지막 커밋 상태로 강제 초기화 (수정사항 날아감!)
  • git pull: 이후에 문제없이 서버에서 코드 받아옴

⚠️ 수정사항이 완전히 삭제되니 신중하게!

 

✅ 3. 수정사항 백업해두고 pull 하고 싶을 때

 
git stash
git pull
git stash pop
  • git stash: 현재 변경사항을 임시 저장
  • git pull: 서버에서 최신 코드 받아옴
  • git stash pop: 아까 저장해둔 변경사항 복원

안전하게 내 코드도 지키고, pull도 하고! ✨

📌 보너스 팁: 브랜치가 main이 아닌 경우

git reset --hard origin/브랜치이름

 

예를 들어 develop 브랜치라면:      git reset --hard origin/develop

 

📌내 경험상 가장 상위 폴더에서 명령해서해결할 수도 있어

이 경우는 git add 하고싶은데 상위폴더에서 바뀐 파일들이 있어서 못하는 경우였어
예를 들어 가장 상위폴더가 main 이라면

main 폴더로가서

git add .             --->  마지막에 점 있으니 빠뜨리지 않도록 하세요 모두하라는 뜻이에요

git commit -m " add file "

git pull

git push

 

+ Recent posts