Git error: Unable to add to .git / logs / refs / remotes / origin / master: Permission denied

I have a strange problem that I cannot solve. Here's what happened:

I had some log files in the github repository that I did not want there. I found this script that completely removes files from git history:

#!/bin/bash set -o errexit # Author: David Underhill # Script to permanently delete files/folders from your git repository. To use # it, cd to your repository root and then run the script with a list of paths # you want to delete, eg, git-delete-history path1 path2 if [ $# -eq 0 ]; then exit 0are still fi # make sure we're at the root of git repo if [ ! -d .git ]; then echo "Error: must run this script from the root of a git repository" exit 1 fi # remove all paths passed as arguments from the history of the repo files=$@ git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch $files" HEAD # remove the temporary history git-filter-branch otherwise leaves behind for a long time rm -rf .git/refs/original/ && git reflog expire --all && git gc --aggressive --prune 

Of course, I made a backup and then tried. Everything seemed to be normal. Then I did push -f git and was greeted with the following messages:

 error: Unable to append to .git/logs/refs/remotes/origin/master: Permission denied error: Cannot update the ref 'refs/remotes/origin/master'. 

Everything seems to have pushed perfectly, because the files seem to have disappeared from the GitHub repository, if I try to click again, I get the same:

 error: Unable to append to .git/logs/refs/remotes/origin/master: Permission denied error: Cannot update the ref 'refs/remotes/origin/master'. Everything up-to-date 

EDIT

 $ sudo chgrp {user} .git/logs/refs/remotes/origin/master $ sudo chown {user} .git/logs/refs/remotes/origin/master $ git push Everything up-to-date 

Thank!

EDIT

Wow Problem. I have been working on this project all night and just decided to make changes:

 error: Unable to append to .git/logs/refs/heads/master: Permission denied fatal: cannot update HEAD ref 

So I:

 sudo chown {user} .git/logs/refs/heads/master sudo chgrp {user} .git/logs/refs/heads/master 

I try to commit again and I get:

 error: Unable to append to .git/logs/HEAD: Permission denied fatal: cannot update HEAD ref 

So I:

 sudo chown {user} .git/logs/HEAD sudo chgrp {user} .git/logs/HEAD 

And then I will try to commit again:

 16 files changed, 499 insertions(+), 284 deletions(-) create mode 100644 logs/DBerrors.xsl delete mode 100644 logs/emptyPHPerrors.php create mode 100644 logs/trimXMLerrors.php rewrite public/codeCore/Classes/php/DatabaseConnection.php (77%) create mode 100644 public/codeSite/php/init.php $ git push Counting objects: 49, done. Delta compression using up to 2 threads. Compressing objects: 100% (27/27), done. Writing objects: 100% (27/27), 7.72 KiB, done. Total 27 (delta 15), reused 0 (delta 0) To git@github.com:IAmCorbin/MooKit.git 59da24e..68b6397 master -> master 

Hooray. I hop on http://GitHub.com and check the repository, and my last commit was not found. :: scratch head :: So I click again:

 Everything up-to-date 

Umm ... that doesn't look like that. I have never had this problem before, maybe this is a problem with github? or did i mess up with my git project?

EDIT

Nevermind, I made it simple:

 git push origin master 

and he pushed hard.

+62
git github
Apr 15 '10 at 5:01
source share
5 answers

It looks like you started git as a local root, thereby changing the ownership of some files that track the location of the origin branch.

Correct the file owner and everything will be fine:

 # run this from the root of the git working tree sudo chown -R "${USER:-$(id -un)}" . 
+171
Apr 15
source share

Let's focus on exactly what we're complaining about:

Permission denied error: unable to update link 'refs / remotes / origin / master'.

Before making recursive changes to the mod / owner, go to this file and fix all the wrong permissions.

I think I caused this problem by creating a branch when I was root, and then tried to contact this branch as my user.

+3
Feb 14 '18 at 18:59
source share

In my case, I created files with root privileges locally and tried to bring the code to the remote with local permissions. So I ran this command

 $find . -user root 

to find out that all files have "root" as the owner. And then I changed the owner to all the files that are under the root on the local one using the following command

 $sudo chown parineethat `find . -user root` 

Then I managed to push my code from local to remote.

+2
Nov 14 '16 at 21:06
source share

This will recursively change all your .git files and directories (from root to 1000) and give you a complete list of all the changes made in the terminal.

Sudo Chown -Rc $ UID.git /

0
May 10 '19 at
source share

Please give root permissions first, as shown below

 chmod -R 777 foldername 

then run the commit command

-13
Jul 24 '15 at 13:28
source share



All Articles