본문으로 바로가기

git cannot lock, cannot create 에러

category Frontend 2021. 6. 6. 13:24

요즘 브랜치를 활용하는 법을 익히려고 이렇게 저렇게 사용해보고 있다

그러던 중에 브랜치를 만드는에 다음과 같은 에러가 발생했다

fatal: cannot lock ref 'refs/heads/...' cannot create 'refs/heads/...'

뭐지..? 평소같이 만들었는데 왜 안되는 걸까

여기저기 검색하다 보니 내 경우에는 브랜치 네이밍 문제였는데

브랜치 명을 test로 할 경우 다음과 같은 경로에 저장된다 refs/heads/test

test에서 작업을 하다가 여기서 파생되는 작업을 하고싶어서 브랜치를 또 만드는데

그 이름을 test의 파생임을 나타내기 위해 하위 경로로 지정한다 test/something

하지만 이런 네이밍을 사용하면

에러가 발생한다

찾아보니 브랜치는 폴더가 아니라 분기이며 분기 b가 존재하는 경우 b/something같은 그 하위 분기는 생성할 수 없다는 것

원인

이 네이밍 제한에 관해서 정확히 설명하는 문서는 찾을 수 없었다 아마 내 짧은 영어 실력 때문인 것 같은데

Git can simply write reference hashes into files whose name is produced by treating the reference as a path name.

이러한 명명규칙을 사용함으로 파일 경로에서 해시를 간단히 참조할 수 있다..? 라고 한다

b, b/1, b/2 등을 허용하면 위와 같은 일이 불가능하다고..

해결 방법

rm -rf .git/ref/브랜치명으로 브랜치를 삭제해버리면된다 강제로 삭제하는 것이기 때문에 추천하지 않는다

깃에서 괜히 막아놓은 것이 아닐테니 저러한 이름을 쓰지 않고 다른 이름으로 브랜치를 만들자

'Frontend' 카테고리의 다른 글

브라우저 렌더링 과정  (0) 2021.11.05
웹 소켓  (0) 2021.06.18
parcel 정적 파일 빌드  (0) 2021.05.31
regeneratorRuntime  (0) 2021.05.30
토큰 기반 인증  (0) 2021.05.20