Pomóż mi proszę, próbuję uruchomić to w moim terminalu:
asgard@asgard-A7N8X2-0:~/CollegePortal$ git pull
error: cannot open .git/FETCH_HEAD: Permission denied
Potem próbuję tego
asgard@asgard-A7N8X2-0:~/CollegePortal$ sudo git pull
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Pomóż mi, nie rozumiem tego problemu.
sudo
nie pomaga tutaj wcale, ponieważ potrzebuje dostępu do twoich kluczy ssh (nie root).Odpowiedzi:
Wygląda na to, że pierwszy nie działa, ponieważ użytkownik nie ma uprawnień do zmiany tego katalogu, a drugi, ponieważ użytkownik root nie ma odpowiednich kluczy SSH do uzyskania dostępu do tego repozytorium git.
W zależności od tego, co próbujesz zrobić, może być lepiej sklonować repozytorium do innego katalogu, a może
chown
do bieżącego katalogu, aby mieć pełny dostęp dla użytkownikaźródło
www-data
użytkownikowi uprawnienia do aktualizacji.git
katalogu. Wywołuję skrypt powłoki za pomocą php przez http w przeglądarce. Szczegóły tutajsudo su
i działasz jako root w repozytorium. Prostysudo chown -R <username> .
w tym katalogu działa magicznie!Sprawdź, czy masz wystarczające uprawnienia do
.git/
katalogu. Powinieneś mieć uprawnienia do zapisu. Możesz ustawić je za pomocą następującego polecenia.Przejdź do folderu projektu:
źródło
chown: youruser: Invalid argument
chown -R youruser .git/
chown
.git/
i jego folder nadrzędny, aby to działałochown
nie działa, uruchom także to poleceniesudo chmod 0777 -R .git/
Jeśli chcesz zezwolić grupie,
działało najlepiej dla mnie.
W systemie MacOS
źródło
Jest to problem z uprawnieniami UNIX. Nie używaj
sudo
do klonowania repozytorium. Nie masz takich samych kluczy ssh jak root i i tak nie powinieneś pracować jako root. Spróbujls -la
znaleźć uprawnienia do plików i użyjchmod
(lubsudo chown
), aby je naprawić. Mam nadzieję, że to pomaga.źródło
sudo clone
, aby zaakceptować nową umowę licencyjną XCode. Odpowiedzią jest zaakceptowanie umowy, a następnie sklonowanie bez sudo.W moim przypadku działa dobrze po tym:
źródło
W odpowiedzi na ten problem upewnij się, że .git / FETCH_HEAD ma uprawnienia do zapisu i wszystko będzie gotowe.
Miałem ten problem w systemie Windows i został rozwiązany przez udzielenie uprawnień do zapisu.
W unixie można uruchomić
chmod a+rw .git/FETCH_HEAD
z repozytorium projektu, po którym powinien działać.źródło
.git/FETCH_HEAD
sam, jeśli problem z uprawnieniami jest włączony.git
.Spróbuj w ten sposób,
Krok 1: Najpierw sprawdź, kim jesteś? zwróci bieżącą nazwę użytkownika, np. ubuntu
Krok 2: Następnie ustaw uprawnienia dla bieżącego użytkownika, w tym przypadku ubuntu przez
źródło
W moim przypadku miałem dostęp tylko do odczytu do pliku .git / FETCH_HEAD. Musiałem zrobić „sudo chmod g + w .git / FETCH_HEAD”, aby móc wykonać polecenie ściągnięcia.
źródło
.git/FETCH_HEAD
sam, jeśli problem z uprawnieniami jest włączony.git
.sudo chmod g+w .git/FETCH_HEAD
sudo chmod g+w .git/FETCH_HEAD
, idealne rozwiązanie.Miałem pierwszy problem (odmowa dostępu FETCH_HEAD) w systemie Windows.
Naprawiłem to, uruchamiając Git Bash jako administrator (kliknij prawym przyciskiem myszy, uruchom jako administrator).
źródło
Jeśli nie dodałeś się do grupy, która jest właścicielem
.git/
, powinieneś.Co to robi:
.git/
i dodaje użytkownika do tej grupy..git/
..gitignore
, co prawdopodobnie będzie potrzebneJeśli niedawno zrobiłeś coś takiego (dodałeś się do grupy, która jest właścicielem
.git/
), musisz się wylogować i zalogować ponownie, zanim będziesz mógł pisać.git/FETCH_HEAD
w swoim czasiegit pull
.źródło
Ustaw uprawnienia dla bieżącego użytkownika, uruchamiając polecenie
$ sudo chown -R <username> .git/
źródło
Po prostu przejdź do folderu głównego i uruchom następujące polecenie:
źródło
Gdy korzystałem z systemu Windows 7, miałem ten problem, ponieważ ukryłem folder .git. Uprawnienia były w porządku, po prostu były ukryte. Wyświetlanie folderu rozwiązało go.
źródło
To rozwiąże wszystkie uprawnienia w folderze
źródło
To działało dla mnie:
Żadne więcej uprawnień nie odmawia błędów w git. 🎉
źródło
Spójrz na właściciela i grupę
.git
katalogu za pomocą (najpierw przejdź do katalogu nadrzędnego .git)ll .git
, spójrz na grupę i właściciela katalogu, dodaj użytkownika do grupy właściciela za pomocąsudo usermod -a -G yourusername groupsofonwner
, a następnie wyloguj => zaloguj się i wszystko zaczyna działać .Tak w lecie
przejdź do katalogu nadrzędnego git
znajdź właściciela grupy
.git
direcotrydodaj użytkownika do tej grupy
Wyloguj się i zaloguj do systemu, aby ta zmiana zaczęła obowiązywać.
Ciesz się;)
źródło
Ten problem występuje, gdy folder .git jest ukryty, a wszystkie pliki w nim również ukryte. Zrób tylko ukryty folder .git bez aktualizacji plików rekurencyjnych i będzie działać.
źródło
Przyczyny tego błędu mogą być wielokrotne, ale w moim przypadku zaktualizowałem gałąź rootem, a kiedy próbowałem zaktualizować ją zwykłym użytkownikiem, pojawia się błąd.
wypróbuj oba rozwiązania, które powinny Ci pomóc
jeśli to nie zadziała, wypróbuj następne rozwiązanie, mając nadzieję, że rozwiąże Twój problem
źródło
Miałem tę wiadomość, gdy korzystałem z rozszerzeń git dla systemu Windows. Moim rozwiązaniem było po prostu zamknięcie rozszerzeń git, a następnie ponowne otwarcie jako administrator
źródło
W moim przypadku,
to polecenie działa.
źródło
Ten problem występuje, gdy nie dajesz wystarczających uprawnień do folderu .git. By rozwiązać ten problem-
Wpisz to polecenie
Mam nadzieję, że to pomoże..!!
źródło
Miałem dokładnie ten sam błąd, ale w moim przypadku problem polegał na przebudowaniu Apache po aktualizacji do wersji PHP. Krótko mówiąc, zapomniałem zainstalować moduł Apache „suexec”.
Nie miało to nic wspólnego z grupą ani własnością. Dopiero po dwóch dniach zrozumiałem, że ktoś mnie zastrzelił ...
źródło
W moim przypadku miałem system podwójnego rozruchu (Windows 10 i Linux) z folderem projektu na dysku NTFS. Okazało się, że na innej aktualizacji system Windows 10 sam w sobie włącza „szybkie uruchomienie” w swoich ustawieniach. Po odznaczeniu go w systemie Windows zniknął „błąd: nie można otworzyć .git / FETCH_HEAD: Odmowa uprawnień” w systemie Linux.
źródło
Dostałem to, ponieważ miałem na swoim koncie więcej niż 1 konto użytkownika. Byłem zalogowany jako użytkownik A i byłem w katalogu dla użytkownika B. Użytkownik A nie miał uprawnień do rzeczy użytkownika B. Kiedy zdałem sobie sprawę, że nie jestem tam, gdzie myślałem, że jestem w systemie plików, ten błąd miał sens.
źródło
jeśli znajdziesz ten sam problem na serwerze Windows, musisz uruchomić wiersz poleceń z wystarczającą liczbą uprawnień, takich jak uprawnienia administratora.
źródło
dla użytkowników MacOS (jeśli High Sierra lub wyższa wersja) użyj tego:
źródło
TL; DR: W systemach podwójnego rozruchu wyłącz Fast Startup dla Windows
Miałem ten problem w moim systemie Ubuntu / Windows z podwójnym uruchomieniem. Nie mogłem napisać niczego na żadnej z partycji współdzielonych z Windows (partycje NTFS).
Niedawno ponownie zainstalowałem oba programy i zapomniałem wyłączyć „Szybkie uruchamianie” w systemie Windows. Wszystko wróciło do normy po ponownym uruchomieniu w systemie Windows, wyłączeniu tej funkcji i ponownym uruchomieniu.
źródło
W moim przypadku działa to tak: Właśnie napisałem
sudo
przed poleceniem:źródło