오류해결

[Git] error: src refspec main does not match any 해결

태오님 2024. 2. 20.

1. 문제 상황

- ubuntu server에서 repository를 clone 하여 작업한 후 commit 후 push 하는 과정에서 error 발생

 

작업 부분

 

- 위 사진은 clone한 레파지토리에 추가한 쉘스크립트의 git commit 및 push 부분

 

- 에러 문구

git push origin main
error: src refspec main does not match any
error: failed to push some refs to 'https://github.com/[user]/[repo]'

 

 

2. 문제 해결

- git 작업 전에 git pull을 통해서 원격 remote에서 최신 상태를 가져왔었음

- git log 통해서 commit 작업은 문제없음을 확인

 

- remote와 local의 branch 확인

git show-ref // remote branch 확인
efs/heads/master
refs/remotes/origin/HEAD
refs/remotes/origin/master

 

위 사진에서 보다싶이 main 브랜치에 push를 하고 있지만

remote에는 branch 이름이 main이 아니라 master였다.

결론은 default branch가 일치하지 않아서 오류가 발생했던 것이다.

 

해당 repository가 아주 오래전에 생성했어서 default branch가 master로 되어 있던 것 같다.

최근에는 default가 main으로 설정되어 있어서 이 부분은 신경 쓰지 못했다;;

 

문제 해결은 방안은 git 명령어를 통해 default branch의 이름을 변경하는 방법도 있고

쉘스크립트에 main 대신 master로 변경해도 된다.

 

나는 후자의 방식이 간단해서 후자로 선택했다.

main -> master 변경

댓글