본문 바로가기
⚠️ 오류백과

git push 오류 error: pathspec '' did not match any file(s) known to git

by Tamii 2021. 3. 11.
반응형

 

Git 에서는 정말 각양각색의 사고가 일어난다.

오늘은 또 무슨일일까?

 

<현재 상황 >

 

처음 push 하는상황 

local의 step1 에서 이것저것 열심히 구현, 아래 그림처럼 commit 해놓고 하고 push 하려는 상황 

 

git add .

git commit -m " 커밋메세지 "

 

 

 

 

 


오류발생 1

 

근데? 띠용???

 갑자기 push가 되지 않는다 

 

  fe-w5-searchUI git:(setp1) git push origin step1
error: src refspec step1 does not match any

error: failed to push some refs to 'https://github.com/ink-0/fe-w5-searchUI'

 

이때 멈췄어야 했다.

 

해당 에러를 검색한 결과  에러 원인은 다양했다 

- git을 초기화한 후에 commit을 1회도 하지 않은 상태에서 push 함 (X)

- 깃허브에서 pull 없이 push 할 경우 (모르겠음)

 

어쨋든

git init

git add .

git commit -m "message"

git push origin tami

이와 같은 방법으로 하면  대부분 해결이 된다고 함 

참고)stackoverflow.com/questions/41620735/error-src-refspec-master-does-not-match-any-when-trying-to-push-to-bitbucket-r

 

 

 

 

 


 

 

 

하지만 나는 성질이 급하여 나왔다. 그리고 생각했다.

원격 저장소 (upstream)를 추가 안해서그렇구나 라고 판단 (잘못됨 )

//브랜치 변경
git checkout tami 

//원격 저장소 추가 
git remote add -t tami upstream https://github.com/codesquad-members-2021/fe-w5-searchUI

//branch 확인 
git remote -v

// origin	https://github.com/ink-0/fe-w5-searchUI (fetch)
// origin	https://github.com/ink-0/fe-w5-searchUI (push)
// upstream	https://github.com/codesquad-members-2021/fe-w5-searchUI (fetch)
// upstream	https://github.com/codesquad-members-2021/fe-w5-searchUI (push)

//브랜치 변경 
git checkout step1

그리고 독주 시작

 

 

 

오류발생 2

error: pathspec 'step1' did not match any file(s) known to git

 

그리고 step1으로 영영 돌어갈 수 없었다.

local step1에서 열심히 구현하고 commit 만 해놓고 push를 안하고 나왔더니 끌어올 수 있는 방법이 없었다.

 

보통의 에러 원인

브랜치에 업데이트가 되지 않아서 그런거라고 한다. 참고)opendive.tistory.com/646

 

 

해결1)  실패

git remote update

git fetch

git checkout step1

 

해결2) 그래도 안된다면  실패 

git checkout -t origin/step1

이라는데 나는 push 하지 않았기 때문에 원격에 step1 브랜치가 생성되어 있지 않아서 이것도 안되었다.

 

해결3) 스택오버플로의 다양한 방법들  실패 

 

stackoverflow.com/questions/5989592/git-cannot-checkout-branch-error-pathspec-did-not-match-any-files-kn

 

Git: cannot checkout branch - error: pathspec '...' did not match any file(s) known to git

I'm not sure why I'm unable to checkout a branch that I had worked on earlier. See the commands below (note: co is an alias for checkout): ramon@ramon-desktop:~/source/unstilted$ git branch -a * d...

stackoverflow.com

 

 

 

 

결론적으로 나의 작업물들은 local step1에 commit되어 갇혀있는데

step1으로 checkout 할 수 없어서 돌아갈 수  없는 상황 

 

git log --oneline --graph --all

깃로그를 확인하면 step1의 commit들이 남아 있는데도 step1으로 돌어갈 수 없는 상황이었다.

 

 

 

해결4) 새로운 branch 를 만들어  step1의 commit들을 cherry-pick 해오자 

 

step1의 commit들을 일일히 commit 가져와서 

// 브랜치 step2 생성하며 전환 
git checkout -b step2

//git cherry-pick {commit 번호}
git cherry-pick e774311

 

 

step2 로 정리 완료 

 

 


 

 

 

 

⭐️ 오늘의 교훈  ⭐️

 

1. error 가 났다면 해당 에러 메세지를 유심히 읽고 해결하자 ⭐️성급히 나오지 말자 X999

2. checkout 전엔 push를하자  ( push 안했으면  해당 branch에서 나오지 말자) 

3. 체리픽 최고

 

댓글