1. 문제
로컬에서 작업하고 있는 브랜치를 origin에 push 하는 상황에서 위와 같은 에러가 발생했다.
2. 원인 및 해결 방법
Git은 브랜치가 계층 구조로 되어있다.
"lab/fix"
라는 이름의 새 브랜치를 생성하려고 하면 Git은 이를 "lab"
이라는 이름의 상위 브랜치 아래에 "fix"
라는 이름의 하위 브랜치를 생성하라는 요청으로 해석한다.
하지만 Git은 특정 브랜치 아래에 하위 브랜치 생성을 허용하지 않는다(찾아봤지만 이유는 모르겠다).
이 문제를 해결하려면 origin의 "lab"
브랜치를 삭제하거나 "lab"
브랜치와 충돌하지 않는 다른 브랜치 이름을 사용하면 된다.
git push origin --delete {브랜치명}
명령을 통해 origin의 브랜치를 삭제할 수 있다.
git branch -m {새 브랜치명}
명령을 통해 로컬의 브랜치 이름을 바꿀 수 있다.
둘 중 하나의 방법을 택하여 문제를 해결할 수 있다.