Hey Tech
[Git/에러해결] error: src refspec main does not match any error: failed to push some refs to ... 해결책 2가지 본문
[Git/에러해결] error: src refspec main does not match any error: failed to push some refs to ... 해결책 2가지
Tony Park (토니) 2023. 3. 22. 22:56❓ 에러 메시지
error: src refspec main does not match any
error: failed to push some refs to 'https://github.com/park-gb/[repository].git'
push 하는 중에 위와 같은 에러 메시지를 마주하였습니다.
💡 원인
원인은 크게 2가지 중 하나일 수 있으며 원인별 해결책을 소개합니다.
원인 1) 원격저장소 업데이트 건 pull 받지 않은 경우
원격저장소가 업데이트되었는데 로컬이 이를 pull 받지 않고 Push 하는 경우 push가 제한됩니다.
예를 들어, 팀원이 원격저장소에 새롭게 파일을 추가하였음에도, 본인이 이를 pull 받지 않고 그래도 push 하는 경우입니다.
해결책 1) 원격저장소 pull 받기
git pull 원격저장소명 브랜치명
원격저장소 이름은 주로 oirign으로 입력하므로 일반적인 명령어는 아래와 같습니다.
git pull origin 브랜치명
브랜치명은 기본값으로 main 혹은 master를 쓰나 다른 브랜치명이라면 해당하는 이름을 입력해 주세요.
이제 다시 파일을 push 해주면 됩니다.
원인 2) branch 다른 경우
위 방법으로 해결되지 않으셨다면, 현재 로컬에서 작업 중인 branch와 push 하려는 원격저장소가 달라 발생한 에러일 수 있습니다.
아래 명령어로 이를 확인해 볼 수 있습니다.
git show-ref
아래와 같이, 제가 push 하고자 했던 branch는 main이었으나 현재 가리키는 branch는 master로 상이하여 에러가 발생한 것입니다.
해결책은 크게 2가지가 있습니다.
해결책 2-1) branch 이름 변경
첫 번째 방법은 default branch 이름을 변경하는 것입니다. 아래의 명령어에서 변경 전/후 브랜치명을 각각 입력하여 실행해 주세요.
git branch -m [변경 전 브랜치명] [변경 후 브랜치명]
아래와 같이 실행하면 default branch 이름을 master에서 main으로 변경합니다. 이제 다시 파일을 push 해보시길 바랍니다.
git branch -m master main
참고로, 아래의 명령어도 default branch를 main으로 변경하겠다는 동일한 역할을 수행합니다.
git config --global init.defaultBranch main
해결책 2-2) branch 생성
만약 push 하고자 했던 branch가 아예 없다면 새롭게 생성하는 방법도 있습니다.
git checkout -b [생성할 브랜치명]
이제 다시 파일을 push 하여 보시길 바랍니다.
포스팅 내용에 오류가 있다면 댓글 부탁드립니다.
그럼 오늘도 즐거운 하루 보내시길 바랍니다 :)
고맙습니다😊
'SW 개발 > Git' 카테고리의 다른 글
[Git] git branch 삭제 방법 : 로컬/원격 브랜치 삭제하기 (0) | 2023.04.22 |
---|---|
[Git] 깃 원격저장소 추가하기 (git remote 추가) (0) | 2023.03.23 |
[Git] 로컬/원격 브랜치 삭제 방법 (2) | 2022.10.12 |
[Git] 깃 브랜치 리스트 확인 방법 (0) | 2022.10.11 |
[Github] branch 삭제 방법(명령어) (0) | 2022.07.04 |