git pullした際にPermissioon deniedのエラーが発生した際の対応方法

検証用の環境でローカルからpushしたブランチをpullをしようとした際にエラーが発生してgit pullができなくなった。pullができないというより、fetchの段階で失敗しているようでした。

出ていたエラーは error: cannot lock ref 'refs/remotes/origin/feature/ブランチ名': Unable to create '/var/www/projects/.git/refs/remotes/origin/feature/ブランチ名.lock': Permission denied となっていた。

スポンサーリンク

エラーの原因

.lockファイルがあるディレクトリを確認したところ、.lockファイルというものは存在せず、ブランチ名のみのファイルが存在している状態でした。

色々調べていくと.lockファイルというのはブランチの操作をロックしておくようなものらしく、それの書き込みに失敗をしているようでした。今回問題となったブランチは新しく作成してpushしたブランチで、それをfetchしてくる際にファイルの生成がうまくいっていないようでした。

解決策

暫定的な対応として、エラーが発生していたリモートブランチをgithub上から削除をしたところgit pullができるようになりました。

ただ、次にブランチをpushした際に、どのようになるかまで検証ができていないので、改めてpushをして検証をしてみたいと思います。