공부기록/Git

unable to delete : remote ref does not exist

Jenner 2023. 4. 24. 11:20

에러 상황 : 깃으로 헤매다가 명령어를 잘못 입력해서 리모트 브랜치를 새로 만들어버렸다. 

 

 

문제를 모두 해결하고 Q라는 리모트 브랜치만 있는 브랜치를 삭제하려고 

 

브랜치 삭제 시도를 해보았다. 

git branch -d Q

 

그러나 아래와 같은 에러가 나왔다. 

 

 

그렇다 branch Q는 없었다. 

왜냐하면 

remote branch만 있기 때문이다. 

 

 

 

그래서 origin branch를 삭제 시도 해보았다. 

 

 

git push origin --delete origin/Q

 

그러나 아래와 같은 에러가 나왔다. 

 

문제는 ....

분명히 git graph나 github페이지에서도 해당 브랜치는 여전히 존재하고 있었다. 

 

 

 

에러를 구글로 검색해 나온 페이지.

https://ooz.co.kr/454

 

[git] 오류 해결 - git unable to delete remote ref does not exist

많은 개발자들이 협업을 하다 보면 git 의 브랜치가 정말 많이 쌓이게 됩니다. 주기적으로 정리를 해주면 좋겠지요.. 로컬 브랜치야 개인이 알아서 정리해주면 되겠지만, remote branch는 별도로 관

ooz.co.kr

 

 

 

결과적으로 봤을 때 git fetch를 하라는 것.

git fetch -p origin

"이유는 로컬PC에 기록되어 있는 remote(원격) 서버의 브랜치 정보와 실제 원격 서버의 브랜치 정보가 일치하지 않기 때문입니다. 로컬PC의 remote 서버 브랜치 정보가 실제 원격 서버와 동기화 된지 오래되었다면 이런 문제가 발생할 수 있습니다."

 

 

그러고 확인해보니 git graph에서도, github페이지에서도 삭제되어있었다. 

다만 진짜로 branch가 존재하는지 확인하기 위해

git checkout Q 를 했을때 나타난 local branch Q만

git graph상에 남아있었다. 

 

그래서 간단히 

 

git branch -d Q

이렇게 local branch를 삭제하였더니 확실히 잘못 만든 ㅠ Q브랜치가 삭제되었다. 

 

 

 

 

느낀점 : 

잘못 입력해서 터미널이 내가 원하는 방향대로 가고 있지 않을 때 무조건 엔터를 치기보다는

다른 방법을 검색해서 차근차근 해봐야겠다. 

아까의 브랜치를 잘못 만든 것은 백슬래시를 잘못 누르고는 해당 터미널을 원래대로 돌리기 위해 

:q를 누른 것인데 그게 잘못해서 :Q가 되며 새로운 브랜치가 생성되어버린 것이다. 

 

잘못된 길로 가버리니, 잘못된 출구로 나와 한참을 돈 고속도로에서처럼 

한참을 헤매게 되었다. 

이를 통해 리모트 브랜치를 새로 생성하는 법이나 삭제하는 법 등을 알 수 있었지만 

만약 새로운 점을 알기 전에 큰 실수로 이어진다면 리스크가 클 것이다. (상상하기 싫다)

 

명령어를 입력할 때는 한번더 생각하기!!!! 

두번 더 생각하기!!! 

 

잘못 입력했을 때는 검색해보기!!!!

git fetch 자주 해주기!