요즘 브랜치를 활용하는 법을 익히려고 이렇게 저렇게 사용해보고 있다
그러던 중에 브랜치를 만드는에 다음과 같은 에러가 발생했다
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 |