본문 바로가기
Etc/문제해결 기록하기

[Git] git push 오류, error: src refspec final does not match any가 뜨다.

by pplucy 2021. 4. 14.

 

잘되던 git, 갑자기 error: src refspec final does not match any 가 떠버렸다.

 

 

한참 팀원들과 pull - push 를 하던 때에

주말에 허겁지겁 push 를 하다가 error: src refspec final does not match any 가 뜨기 시작했다.

이 과정에 checkout branch 를 하게 되면서 폴더도 날아가고 ,,

(사실 날아간건 아니고 원래 작업하던 저장소로 돌아가면 다시 생기긴 함..!)

암튼 정신없는 와중에 pull - push 를 하다 보니 뭘 잘못했는지도 기억이 안났다.

갑자기 왜 push 오류가 뜨는 것이냐 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ

 

 

해당 error가 발생한 다른 상황을 구글링 해보았지만

전부 commit을 안해서, 계정등록을 안해서, 오타문제 등등이었다.

하지만 나는 그 전까지 잘 되었기에 도대체 왜 push 가 안되는지 의문이었다 (ㅠㅠ)

더욱이 이상한건 pull은 또 잘 됨....

 

pull 받고 Push  하려 했으나 1차 실패 ;;

 

 

 

 

 

병합 문제인가 싶어 충돌났던 폴더 바로잡고 커밋 후 다시 pudsh ...

역시나 실패 ...;;;;;

error: src refspec final does not match any

이렇게 뜨면 아래에 hint를 주는 경우가 있던데 나는 hint 도 안줘서 더 멘붕이었다.

 

 

 

주말부터 4일 내내 끙끙 앓다가 모든 방법을 다 해도 안되길래 강사님께 여쭤봤다...

진작부터 물어볼걸 생각도 했지만 아무래도 혼자 해결해보는게 나중에 기억하기도 쉬울거 같아서 노력했음.

 

강사님 내가 도움을 요청하자마자 거의 5분 만에 원인을 찾으셨다.

이유는 내가 잘못된 branch에 있었기 때문 ㅠ_ㅠ

 

 

log 를 보면 지금은 origin/final-project라고 되어있지만

계속 오류가 났을 때에 나는 main branch로 찍혔다...!

pull-push를 지속적으로 하고 있던 브랜치가 final-project였는데

내가 main으로 cheackout 한 상태에서 작업하고 final-project에 push 하려고 하니 문제가 생긴 것,

그럼 이제 브랜치를 체크아웃 하면 되느냐?

그 전에 만약 내가 바로 checkout branch로 해버리면 기존에 main에서 작업하던

내역이 브랜치가 바뀌면서 같이 바뀌기 때문에 

main에서 작업한 내역을 final_project 즉, push 하길 원하는 브랜치에 병합을 해주어야 한다.

 

$git merge final-project 

를 쳤더니 push 되길 원했던 브랜치에 내가 작업한 내역이 잘 병합되었다.

 

 

진짜 git 은 쓰면 쓸수록 쉬운거 같으면서도 어렵다 ㅠㅠ

다음엔 같은 실수 하지 말아야지...!

댓글