Sassyブログ

好きなことで暮らしを豊かにするブログ

【備忘録】error: insufficient permission for adding an object to repository database .git/objects でgit pullできないときの対処法

問題

AWS上で運用しているボットのリポジトリを最新化しようとしてgit pull したときに以下のようなエラーが発生していた。 ちょいちょい頻発するのだけど、毎回どう解消したっけ?ってなるので備忘録として残しておきます。

error: insufficient permission for adding an object to repository database .git/objects

表示されたメッセージは以下。

[hogeuser@ip-172-31-41-136 hogehoge]$ git pull origin master
Enter passphrase for key '/home/hogeuser/.ssh/id_rsa': 
remote: Enumerating objects: 33, done.
remote: Counting objects: 100% (21/21), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 13 (delta 5), reused 8 (delta 4), pack-reused 0
error: insufficient permission for adding an object to repository database .git/objects
fatal: failed to write object
fatal: unpack-objects failed

原因

エラーメッセージに記載されているようにパーミッション周りの問題みたいなので、最悪クローンし直せばよいのだけど、毎回やるのは手間なので参考記事のように.git/objectsの権限を変更しました。

$ sudo chmod -R 777 .git/objects

本当は運用サーバー上にリポジトリを直接クローンするよりCIとかで資材だけ配布すれば良いのだけど、それほどコストかけるほどのものではないので直接リポジトリをクローンして運用している状況。 おそらく今後も発生するかと思うのでメモしておこう。

参考記事

blog.t5o.me