git: Unable to index file - permission denied
If you are using visual studio or something similar that is generating the mdf file, simply close VS & retry your git command again. This time it should work.
To save constantly closing & reopening, you should add references into .gitignore file in the project root. For example, if it is a database causing the issue, add the following:
# SQL Server files
*.mdf
*.ldf
Just close the Visual Studio (or Unity) and try to add those files again.
You don't have permission to write in /opt/www/.git/objects/3f
.
The quickest solution is to use the sudo
command to execute your command with root privileges.
sudo <Your git command>
Solved it for me.
Looking at the Git source code (sha1_file.c
, function move_temp_to_file()
) it looks like Git is failing to rename a temporary file named /opt/www/.git/objects/3f/tmp_obj_XXXXXX
(where XXXXXX
is six random characters) to /opt/www/.git/objects/3f/ce3587c54a8be14c69b08c6b01f94949b11b47
. This can happen if you don't have permission to delete files in /opt/www/.git/objects/3f
.
Some things to try:
- If multiple users accessing the Git repository, you may need to run something like
git config core.sharedRepository 0664
(seegit help config
for details) to ensure that newly created directories and files have proper permissions for all users of the repository. - Try running
rm -f /opt/www/.git/objects/3f/tmp_obj_*
and see if that makes the problem go away. See if you can reproduce the problem outside of Git by doing the following:
mkdir -p /opt/www/.git/objects/3f cd /opt/www/.git/objects/3f rm -f tmp_obj_* ce3587c54a8be14c69b08c6b01f94949b11b47 echo "testing" >tmp_obj_abcdefg mv tmp_obj_abcdef ce3587c54a8be14c69b08c6b01f94949b11b47 rm -f tmp_obj_abcdefg
Be sure to run the above commands the same user that experienced the error.
- Try recursively
chown
ing andchmod
ing the objects directory.