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
이와 같은 방법으로 하면 대부분 해결이 된다고 함
하지만 나는 성질이 급하여 나왔다. 그리고 생각했다.
원격 저장소 (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) 스택오버플로의 다양한 방법들 실패
결론적으로 나의 작업물들은 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. 체리픽 최고
'⚠️ 오류백과' 카테고리의 다른 글
[github 에러 ]The requested URL returned error: 403 (fatal: unable to access) (0) | 2021.03.16 |
---|---|
깃허브(github) 잔디심기 오류 해결하기! (0) | 2021.03.12 |
[Git] Pull request에서 충돌 없이 병합하기 + cherry-pick (0) | 2021.03.05 |
Node / Express 오류 - EADDRINUSE, Address already in use (0) | 2021.03.04 |
git conflict(충돌) 처리법 -branch merge시 (0) | 2021.03.04 |
댓글