github error: insufficient permission for adding an object to repository database

Issue

When I run these commands from my App folder:

git add .
git commit -m "commit details"
git push

I get the error:

[email protected]:~/myapp$ git add .
error: insufficient permission for adding an object to repository database .git/objects

error: app/views/reviews/update.js.erb: failed to insert into database
error: unable to index file app/views/reviews/update.js.erb
fatal: updating files failed
[email protected]:~/myapp$ 

I tried this command:

chown -R user:user /project/directory

But seeing as I got in a whole load of trouble in the first place by running commands I wasn’t sure about, I want to know if this is the correct solution.

What should the exact syntax be, if the user is ‘Christophe’, and the folder where my Rails app is stored is called ‘myapp’. I mean should it be

chown -R user:christophe /myapp/app/views/reviews/update.js.erb

Solution

chown [ -f ] [ -h ] [ -R ] Owner [ :Group ] { File ... | Directory ... }

From the man page

The chown command changes the owner of the file specified by the File
parameter to the user specified by the Owner parameter. The value
of the Owner parameter can be a user ID or a login name found in the
/etc/passwd file. Optionally, a group can also be specified. The value
of the Group parameter can be a group ID or a group name found in
the /etc/group file.

About the -R option

-R
Descends directories recursively, changing the ownership for each
file. When a symbolic link is encountered and the link points to a
directory, the ownership of that directory is changed but the directory
is not further transversed.

So

chown -R user:christophe /myapp/app/views/reviews/update.js.erb

Would change the owner of the update.js.erb file to the user user in the group christophe, which is probably not what you want.

In your case changing the owner of the repo to yourself, i.e.

sudo chown -R christophe /path/to/your/local/repo

should suffice.

If you don’t know your user name, you can find it out with the whoami command.

Answered By – Gabriele Petronella

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published