Mam dziwny problem, którego nie mogę rozwiązać. Oto, co się stało:Błąd Git: Nie można dołączyć do pliku .git/logs/refs/remote/origin/master: Odmowa uprawnień
Mam kilka plików dziennika w repozytorium github, których nie chciałem tam. Znalazłem ten skrypt, który całkowicie usuwa pliki z historii git tak:
#!/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
[email protected]
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
I, oczywiście, wykonana kopia zapasowa, a następnie próbował go. Wydawało się, że działa dobrze. I wtedy zrobił -f git wypychania i był witany z następujących komunikatów:
error: Unable to append to .git/logs/refs/remotes/origin/master: Permission denied
error: Cannot update the ref 'refs/remotes/origin/master'.
wszystko wydaje się być popychany w porządku, chociaż, ponieważ pliki wydają się być poszedł z repozytorium GitHub, gdy próbuję i wcisnąć znowu dostać to samo:
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
dzięki!
EDIT
Uh Oh. Problem. Pracuję nad tym projektem przez całą noc i po prostu poszedł do popełnienia moje zmiany:
error: Unable to append to .git/logs/refs/heads/master: Permission denied
fatal: cannot update HEAD ref
Więc:
sudo chown {user} .git/logs/refs/heads/master
sudo chgrp {user} .git/logs/refs/heads/master
I spróbuj ponownie popełnić i uzyskać:
error: Unable to append to .git/logs/HEAD: Permission denied
fatal: cannot update HEAD ref
Więc:
sudo chown {user} .git/logs/HEAD
sudo chgrp {user} .git/logs/HEAD
A następnie Ponownie testuję:
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 [email protected]:IAmCorbin/MooKit.git
59da24e..68b6397 master -> master
Hura. Wskakuję na http://GitHub.com i sprawdzam repozytorium, a moje ostatnie zatwierdzenie nie jest tym, gdzie można je znaleźć. :: zarysowania głowy :: Więc ponownie:
Everything up-to-date
Umm ... to nie wygląda tak. Nigdy wcześniej nie miałem tego problemu, czy to może być problem z githubem? czy coś zepsułem z moim projektem git?
EDIT
Nevermind, zrobiłem prosty:
git push origin master
i przepychanie porządku.
To polecenie zadziałało dla mnie. Przebiegłem go od korzenia klona. Dzięki @CharlesDuffy! – ariestav
@ Mr.Stranger, tylko jeśli masz przyzwoitą wartość IFS i nazwę użytkownika (nazwy użytkownika ze spacjami mogą się zdarzyć, na przykład na cygwin). Bezpieczniej zacytować: 'sudo chown -R" $ USER ".' I nie zakładaj poczytalności. :) –
@ Mr.Stranger, ... także, 'USER' nie jest gwarantowane przez http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_05_03, więc może być bezpieczniej używać '" $ (id -un) "'. –