엘리스 수업떄 들었던 파일들을 하나하나 깃랩에 커밋했다. 그런데 js 폴더에서 .git을 해버려서 그전의 강의에서 했던 파일들도 깃랩에 업로드를 하고 싶었다. 그래서 push를 하려고 하니까 이런 오류가 계속 떴다
구글링하다가 위 사이트에게 도움을 많이 받았다...!
https://sosoeasy.tistory.com/406
위 사이트는 내가 난 오류가 왜 난 건지 그림으로 자세히 설명해주셨다!
일단 js 폴더에서 origin을 제거하고 .git 폴더를 삭제해줬다.
그리고 web 폴더에서 깃랩의 http코드를 clone해주고, pull 해줬다.
각종 블로그글을 찾아봤을 때 원격저장소에 있는 파일과 로컬저장소의 파일이 다를 때 저런 오류가 뜬다고 했다.
그래서 일단 web폴더의 파일을 원격저장소와 같게 만들어줬다. 그리고 add하고 commit을 해줬다.
그런데 이렇게 했는데도 git push가 되지 않았다.
**해결책
git pull origin master --allow-unrelated-histories
pull만 하는 게 아니라 뒤에 옵션도 더 붙였어야 했다. (로컬저장소와 원격저장소의 병합을 허용한다는 의미, 강제로 pull하겠다!)
master -> FETCH_HEAD에서 오류가 났다는 메시지.
FETCH_HEAD가 뭔지 궁금해서 검색해 봤다.
FETCH_HEAD => 원격 저장소에서 가져온 내용을 추적하기 위한 단기 참조.
git pull은 git fetch와 git merge를 합친 동작이라고 배웠다.
FETCH_HEAD는 원격저장소에서 가져온 분기의 끝을 가리킨다. 그 다음 git merge FETCH_HEAD를 호출해서 FETCH_HEAD를 현재 분기에 병합하는 방식으로 동작한다. 그래서 원격저장소의 마지막 commit을 로컬 저장소의 commit 로그 맨 앞으로 받아온다.
기본적으로 merge는 원격저장소와 로컬 저장소가 공통으로 가지고 있는 commit 지점이 존재해야 한다. 그 지점부터 병합을 시도하기 때문이다! 그런데 애초에 나는 공통되는 commit이 없기 때문에 pull 을 사용할 수 없는 것이다..
해결책: 공통된 커밋 포인트가 없기 때문에 pull 명령어에 옵션을 추가해 강제로 pull하는 방식
참고: https://jobc.tistory.com/177
이렇게 하고 add,commit하고 push를 하니 잘 작동이 되었다! 아싸
'엘리스 ai 트랙 > 개인 공부' 카테고리의 다른 글
비동기 통신 (0) | 2022.02.08 |
---|---|
FormData, 복리계산기 (3주차) (0) | 2022.02.07 |
IIFE를 알아보다가.. (0) | 2022.02.05 |
closure 공부하기 (0) | 2022.01.28 |
Node 객체 공부 중에 (0) | 2022.01.26 |