본문 바로가기
D.evelop/Git

[Git] git pull오류 - 병합 때문에 추적하지 않는 다음 작업 폴더의 파일을 덮어씁니다

by Danne 2021. 10. 25.

!! 주의

공신되지 않은 공부용으로 작성한 기록입니다. 

내용은 계속 추가, 수정될 수 있습니다.

 


 

내 작업 브랜치가 merged되었다.

master에서 pull을 받았다.

 

git pull origin master

엔터!

 

오류가 났다.

 

https://github.com/wecode-bootcamp-korea/25-2nd-MEGAFOX-frontend URL에서 * branch master -> FETCH_HEAD
업데이트 중 dd8da07..122fa77
error: 병합 때문에 추적하지 않는 다음 작업 폴더의 파일을 덮어씁니다:
    src/components/Header/Nav/NavData.js
병합하기 전에 이 파일을 옮기거나 제거하십시오.

 

새로 pull을 받은 팀원들은 문제가 없다.

 

  • 그럼, 내 local에서 충돌이 난 것.
  • 메세지에서 시키는대로 파일을 옮기거나 제거하면 master브랜치가 오염된다. (나 혼자쓰는 저장소가 아니다!)

 

가장 유사하고 많이 추천하는 해결책은 아래의 명령어 였다.


git fetch --all
git reset --hard origin/master

 

 

git fetch --all

원격 저장소의 최신 이력을 확인, 이때 가져온 최신 커밋 이력은 이름없는 브랜치로 로컬에 다운로드함.(가져옴)

fetch는 아무것도 merge 또는 rebase하지 않음.

 

git reset --hard origin/master

origin/master branch 와 일치 시킴

  • reset: master브랜치를 가져온 항목으로 재설정
  • --hard: 작업 트리의 모든 파일을 origin/master의 파일과 일치하도록 함.

 

 

먼저 깃을 처음 다루는 사람들이 하는 가장 큰 착각 중 하나가 단순히  pull 을 받으면 원격 저장소와 내 컴퓨터의 소스코드가 일치된다고 생각하는 것입니다.
하지만 pull을 받는다고 하여 원격저장소의 브랜치와 로컬브랜치의 소스코드가 같아지지는 않습니다.
왜냐하면 pull은 fetch + merge이며, 기존 로컬에 있는 코드와 원격에서 받은 코드가 merge 되며 합쳐지기 때문입니다.

출처 : spoit 티스토리 블로그 (링크)

 

 

💡방법 찾기💡

[참고 site]

::  https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EB%A6%AC%EB%AA%A8%ED%8A%B8-%EB%B8%8C%EB%9E%9C%EC%B9%98

:: https://backlog.com/git-tutorial/kr/stepup/stepup3_2.html

 

[꿀팁 site]

:: https://m.cafe.daum.net/bboybeatbox/JFCZ/39

:: https://spoit.tistory.com/26 ([git] 원격 저장소와 local저장소의 소스코드를 일치시키는 방법)

:: https://flame-pg.tistory.com/29 ("git pull"이 로컬 파일을 덮어 쓰도록하려면 어떻게해야합니까?)

:: https://stackoverflow.com/questions/1125968/git-how-do-i-force-git-pull-to-overwrite-local-files (stackoverflow)

 


 

버리기 아까워서 기록하는 우당탕탕 명령어들.

megafox git:(master) ✗ git pull origin master
https://github.com/wecode-bootcamp-korea/25-2nd-MEGAFOX-frontend URL에서
 * branch            master     -> FETCH_HEAD
업데이트 중 dd8da07..122fa77
error: 병합 때문에 추적하지 않는 다음 작업 폴더의 파일을 덮어씁니다:
        src/components/Header/Nav/NavData.js
병합하기 전에 이 파일을 옮기거나 제거하십시오.
중지함
➜  megafox git:(master) ✗ git fetch --all
origin을(를) 가져오는 중
➜  megafox git:(master) ✗ git reset --hard origin/master
HEAD의 현재 위치는 122fa77입니다 Modify: git에서 대소문자 변경을 인식하지 못하는 이슈 수정
➜  megafox git:(master)

 

 

반응형

댓글