git pushした結果が反映されていなかったので、見てみるとこのエラーが出ていた。原因は割と単純だったが、そこそこあることなのかなと思ったのでメモしておく。
問題点、対応の要旨
問題点:ディレクトリの所有者が違い、ファイル作成ができなかった
対応:ディレクトリの所有者変更で解消
状況
push自体は正常に行えていたので、どこまでコミットが届いてるのか確認しにいく。
リモート見るとコミットログはあったので、ベアリポジトリまでは問題なく届いていました。
なので、アプリケーションの方を見にいく。
git logしてみると途中までしかログが来ていなかったので、どうやらフックでの反映部分がうまくいっていないのかと。
一度手動でgit pullして変更を取り込んでみようとする。
ここで表題のエラーが出た。下記のような感じ。
$ git pull origin master
From localhost:hogehoge
* branch master -> FETCH_HEAD
Updating 7086662..be65dd2
error: unable to create file hogehoge.png (????????)
まんまだけど、ファイル作ろうとしたけどできなかったわ、ってことのよう。
権限かなんかの問題かなと思い、ディレクトリ見てみると所有者がアプリケーション作成時のデフォルトのままになってた。既存のファイルの変更はうまくいっていたみたいだけど、新規だとダメみたい。
このプロジェクトはある程度作りきった後にgitを置いたので、その時に所有者変えてなかったので今回のようなことに。
ディレクトリの所有者を変更したら、問題なくpullできてコミットも反映された。
小規模だったり、1人で完結するようなものだとgitは後付けすることもあるかと思うので、そういった時には起こるかなと思った。