Okarin note

頭の整理もかねて色々と書いていきます

git remote prune originで解消しなかった話

経緯

GWが終わった後の出勤。 私は全部休んだのでブランチの状況が変わっていた。なのでまずはソースコードを最新にしようとしてgit pullをしたんだけれどその時にエラーが出た。

fatal: cannot lock ref ...

原因

ブランチ名の一部が競合したこと。
feature/〇〇のように名前付けしていたらfeatureの名前でディレクトリができ、最後の文字列がファイルになる。

例:

feature/add/hoge

feature
|--add
    |--hoge <- ファイル

feature/add/hogeを作った後に、
feature/add/hoge/fugaのようなブランチを作ろうとすると、gitはfugaファイルを作るためにhogeディレクトリを作ろうとする。
hogeファイルがある状態で作ろうとするため名前が競合しているから作成できない。
これがエラー原因。

解決方法

できるだけ名前が競合しないように名前付けをこだわってあげよう。 「/」で区切りすぎりすぎないのがいいのかもしれない。