지금까지 무작정 따라 코드 치고 작동 확인하고 테스트 돌려보고 하는거에 열중한 나머지
개발 기록을 github에 등록해놓는 것을 잊어버려서... 허둥지둥 github에 등록하기까지의 삽질기를 정리해보려 한다.
생각보다 이런 일이 종종 있기에 이번에야말로 기필코 확실히 정리해서 오류를 정복할 테다.
각설하고, 급히 push를 해서 등록을 하려고 보니..

사실 두가지 오류 중 첫번째 오류는 아주 간단하다. 원격 저장소의 브랜치 이름이 'main'인데, 로컬에서는 'master' 브랜치를 쓰고 있기 때문에 발생한 오류이다. 애초에 왜 master가 됐는지 모르겠다. 난 줄곧 main만 써왔는데..? 아무튼 이런 경우에는 그냥
git branch -m master main
해서 master를 main으로 변형하고 다시 push를 해주면 끝난다.
근데 문제는 밑에 빨간 줄 쳐진 두번째 오류이다.
'failed to push some refs'라는 에러 메시지는 보통 로컬 저장소의 변경 사항을 원격 저장소에 푸시하려고 할 때, 원격 저장소의 변경 사항이 로컬에 아직 반영되지 않았을 때 발생한다.
즉, 원격 저장소에는 로컬 저장소에 없는 새로운 커밋이 있을 경우, 이런 에러가 발생할 수 있다. 이를 해결하기 위해서는 먼저 원격 저장소의 변경 사항을 로컬에 가져와야 한다.
다음과 같은 명령어를 사용해서 원격 저장소의 변경 사항을 로컬에 반영하고, 다시 push한다.
git pull origin main // 원격 저장소의 변경사항을 로컬에 반영
git push origin main // 로컬의 변경사항을 원격 저장소에 푸시
근데 이렇게 했더니,
PS C:\Users\LG\web-board (2)> git pull origin main remote: Enumerating objects: 41, done. remote: Counting objects: 100% (41/41), done. remote: Compressing objects: 100% (26/26), done. remote: Total 41 (delta 1), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (41/41), 67.06 KiB | 837.00 KiB/s, done. From https://github.com/prislewarz/Springboot
- branch main -> FETCH_HEAD
- [new branch] main -> origin/main fatal: refusing to merge unrelated histories PS C:\Users\LG\web-board (2)> git push origin main error: src refspec main does not match any error: failed to push some refs to 'https://github.com/prislewarz/Springboot.git'
위와 같이 새로운 오류가 생겼다.
git이 두 개의 분리된 프로젝트 이력을 병합하려고 할 때 발생하고, 이 오류는 보통 로컬과 원격 저장소가 서로 다른 커밋 이력을 가지고 있을 때 발생한다. git pull 명령어에 --allow-unrelated-histories 옵션을 추가하면, 서로 관련이 없는 커밋 이력을 병합하는 것을 허용한다.
git pull origin main --allow-unrelated-histories
비로소 문제없이 등록이 완료되었다. 이제 나머지 천천히 정리하고, 앞으로는 바로바로 커밋하고 푸시하는걸로..ㅠ
'백엔드 > Springboot' 카테고리의 다른 글
질문 목록과 템플릿(2) (1) | 2023.11.09 |
---|---|
질문 목록과 템플릿(1) (0) | 2023.11.09 |
리포지터리(Repository) -3- (0) | 2023.09.18 |
리포지터리(Repository) -2- (0) | 2023.09.18 |
리포지터리(Repository) -1- (0) | 2023.09.18 |