开发者

git: Unable to index file - permission denied

开发者 https://www.devze.com 2023-03-14 02:48 出处:网络
Only for one file, I am getting the following error: error: unable to write sha1 filename /opt/www/.git/objects/3f/ce3587c54a8be14c69b08c6b01f94949b11b47: Permission denied

Only for one file, I am getting the following error:

error: unable to write sha1 filename /opt/www/.git/objects/3f/ce3587c54a8be14c69b08c6b01f94949b11b47: Permission denied

error: wp/wp-admin/css/theme-install.dev.css: failed to insert into database
fatal: unable t开发者_开发百科o index file wp/wp-admin/css/theme-install.dev.css

I checked my permissions on the file in question, the .git objects directory in question, and .git itself. I can add any other files except for this one. I could stat/r/w/touch the file, and touching did not help. The permissions are all correct.

Is this some crazy bug?


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


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 (see git 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 chowning and chmoding the objects directory.


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.


Something has gone awry in your git repository likely caused by an external process creating a file or directory which is owned by a user other than the current user.

This error is common when using Docker, and a service in your docker-compose.yml file has a locally mounted volume which was created using a different user to that of the local machine user.

If this is the first time that this error has occurred, execute the below on your working directory to change the ownership of files and folders back to the logged in user:

sudo chown -R ${USER}:${USER} .

If this is not the first time you have encountered this issue, i.e. you have already committed and pushed files and folders that are owned by another user, then the above alone will not rectify the situation, as well as executing the above command - you will need to carry out the following instructions.

By far, the quickest fix is to execute the following from your root project directory which holds your git repository:

sudo chown -R ${USER}:${USER} .git/objects

To test that everything is fixed, execute the following:

git add .

Quickly followed by executing:

git status

You will see that everything has been added to the git repository without any need to test / fiddle around with anything any further.


error: open("3/BasicMVVM/.vs/BasicMVVM/v16/Server/sqlite3/db.lock"): Permission denied

error: unable to index file 3/BasicMVVM/.vs/BasicMVVM/v16/Server/sqlite3/db.lock fatal: adding files failed

if you have such error and you are working on visual studio.first you close the visual studio. git bash and write "git add * " with out inverted commas and on the suitable place it will work for my self


I was having this problem on my bare origin repository when the permissions were root:git 770, apparently I had to change it to 771, even though my user is in the git group. I suspect perhaps git is perhaps either not acl-aware, or not so compatible with secondary groups, as the git group was one of my secondary groups in this case.


I stopped running my Driver.main() method in intelliJ (for java programming) and was able to add all my files to staging area with git add . command. Also try restarting intelliJ or whatever tool you are using for writing code as a second option.


This happens to me when I was trying to push a doc file to GIT hub when it was opened. After closing it and tried the same and successfully pushed.

0

精彩评论

暂无评论...
验证码 换一张
取 消