日々精進

新しく学んだことを書き留めていきます

gitでブランチを作成すると「fatal: Failed to lock ref for update: Not a directory」エラー

原因は以下。
・slash区切りでブランチ名をつけた場合、gitはその構造通りにディレクトリ・ファイルを作ろうとする
 たとえば、hotfix/111/bug1だと.git/refs/heads/hotfix/111/bug1というパスにファイルを作ろうとする
・slashで区切った単位で前方一致するブランチが別にあると、ファイルを作れなくてエラーになる
 .git/refs/heads/hotfix/111/bug1が先に作られていると、.git/refs/heads/hotfix/111というパスにファイルを作れないのでエラーになる。
 なので、hotfix/111のようなブランチを作ろうとするとエラーになる。


解決策はブランチの名前を変えること。hotfix/111/bug2とか。
参考:gitのブランチ名にスラッシュを含めるときの罠 - hokaccha.hamalog v2