공군소령김도지
624
2021-09-17 05:04:19
1
123

Git pull 질문드립니다.



데스크탑 에서 저의 github 리포에 

커밋을 push 했습니다. 


그후


노트북에서 제가 올린 최신 커밋을 

github 리포로 부터 업데이트 하기 위해 


git pull origin master를 했는데요..

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

        index.html


이렇게 오류가 나면서

노트북에 파일이 최신으로 변하지 않습니다...


어떻게 해야 될까요?

rebase를 해야 하나요?


0
  • 답변 1

  • refresh6724
    100
    2021-09-17 09:27:04


    노트북에 있는 index.html 파일이 이전 기록으로부터 변경된 점이 있는데 깃헙에서 최신 파일을 받으면 노트북에서 작업한 기록을 버려야 한다(덮어 씌워진다)는 에러 메시지입니다.


    두 가지 선택지가 있는데


    먼저 노트북에서 작업한 내용이 필요 없다면

    지우고 받으면 됩니다

    git reset --hard HEAD

    git pull origin/master


     그게 아니고 노트북에서 작업한 것도 있어야 한다면

    git fetch --all 명령으로 일단 깃헙에서 최신 기록을 받아오고 


    git branch backup-master 명령어로 새로운 브랜치를 생성해서 노트북에서 작업한 기록을  보관합니다


    바뀐 파일을 따로 보관했으니


    이제 git reset --hard origin/master 로 노트북의 master 브랜치를 fetch로 받은 최신 파일로 강제로 덮어씌웁니다.


    그러면 이제 노트북에는 노트북에서 작업한 기록을 담은 backup-master 브랜치와 최신 파일로 변경된 master 브랜치 두 개가 남습니다.


    위 내용은 모두 스택오버플로우를 참조하였음을 알려드립니다. 

    직접 가서 보시는게 더 좋습니다

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

  • 로그인을 하시면 답변을 등록할 수 있습니다.