title: Git error: Unable to append to .git/logs/refs/remotes/origin/master: Permission denied
body: <p>I am having a strange issue that I can't seem to resolve. Here is what happend:</p>
  
  <p>I had some log files in a github repository that I didn't want there. I found this script that removes files completely from git history like so:</p>
  
  <pre><code>    #!/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's root and then run the script with a list of paths
  # you want to delete, e.g., 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/ &amp;&amp; git reflog expire --all &amp;&amp;  git gc --aggressive --prune
  </code></pre>
  
  <p>I, of course, made a backup first and then tried it. It seemed to work fine. I then did a git push -f and was greeted with the following messages:</p>
  
  <pre><code>error: Unable to append to .git/logs/refs/remotes/origin/master: Permission denied
  error: Cannot update the ref 'refs/remotes/origin/master'.
  </code></pre>
  
  <p>Everything seems to have pushed fine though, because the files seem to be gone from the GitHub repository, if I try and push again I get the same thing:</p>
  
  <pre><code>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
  </code></pre>
  
  <p><strong>EDIT</strong></p>
  
  <pre><code>$ sudo chgrp {user} .git/logs/refs/remotes/origin/master
  $ sudo chown {user} .git/logs/refs/remotes/origin/master
  $ git push
  Everything up-to-date
  </code></pre>
  
  <p>Thanks!</p>
  
  <p><strong>EDIT</strong></p>
  
  <p>Uh Oh. Problem. I've been working on this project all night and just went to commit my changes:</p>
  
  <pre><code>error: Unable to append to .git/logs/refs/heads/master: Permission denied
  fatal: cannot update HEAD ref
  </code></pre>
  
  <p>So I:</p>
  
  <pre><code>sudo chown {user} .git/logs/refs/heads/master
  sudo chgrp {user} .git/logs/refs/heads/master
  </code></pre>
  
  <p>I try the commit again and I get:</p>
  
  <pre><code>error: Unable to append to .git/logs/HEAD: Permission denied
  fatal: cannot update HEAD ref
  </code></pre>
  
  <p>So I:</p>
  
  <pre><code>sudo chown {user} .git/logs/HEAD
  sudo chgrp {user} .git/logs/HEAD
  </code></pre>
  
  <p>And then I try the commit again:</p>
  
  <pre><code>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 -&gt; master
  </code></pre>
  
  <p>Hooray. I jump on <a href="http://GitHub.com" rel="noreferrer">http://GitHub.com</a> and check out the repository, and my latest commit is no where to be found. ::scratch head:: So I push again:</p>
  
  <pre><code>Everything up-to-date
  </code></pre>
  
  <p>Umm...it doesn't look like it. I've never had this issue before, could this be a problem with github? or did I mess something up with my git project?</p>
  
  <p><strong>EDIT</strong></p>
  
  <p>Nevermind, I did a simple:</p>
  
  <pre><code>git push origin master
  </code></pre>
  
  <p>and it pushed fine.</p>