Na zdalnym serwerze mam skonfigurowany hak po otrzymaniu, aby dokonać wypłaty z mojego repozytorium:
#!/bin/sh
GIT_WORK_TREE=/var/www/<website> git checkout -f
Ale kiedy wypycham z mojego komputera lokalnego do repozytorium git na serwerze, otrzymuję następujące komunikaty o błędach:
remote: error: unable to unlink old '<file>' (Permission denied)
To pojawia się wiele razy, jeden komunikat o błędzie dla prawie każdego pliku.
Mam jednak plik README.txt, który mogę zmienić za pomocą git, oto jego uprawnienia:
-rw-r--r-- 1 <serverusername> <serverusername> 2939 Aug 2 10:58 README.txt
Ale inne pliki z dokładnie tym samym właścicielem i tymi samymi uprawnieniami dają mi ten błąd.
W innym lokalnym repozytorium dla innej witryny mam pliki z moją nazwą użytkownika lokalnego komputera jako właściciela, a kiedy przesyłam na serwer zdalny, szanuje właściciela plików na tym serwerze i działa jak urok.
Oczywiście wydaje się, że to błąd związany z uprawnieniami, ale nie mogę znaleźć sposobu, aby to naprawić, jakieś sugestie?
źródło
sudo chmod -R g+w
winnych folderów.mv
akcje niż tylko nadpisywanie.ls -l
wyświetlacza wskazuje typ pliku i nie jest związany z uprawnieniami. Pozostałe dziewięć znaków jest w trzech zestawach, z których każdy reprezentuje klasę uprawnień jako trzy znaki. Pierwszy zestaw reprezentuje klasę użytkownika. Drugi zestaw reprezentuje klasę grupy. Trzeci zestaw reprezentuje klasę pozostałych. Wg+w
chmod daje grupie zestaw (g
parametr) uprawnienia do zapisu (w
parametr)To polecenie rozwiązałoby problem. Daje uprawnienia do zapisu do folderu.
źródło
Jeśli używasz dowolnego IDE, najprawdopodobniej problem polega na tym, że plik był używany przez jakiś proces. Tak jak twój kocur może używać pliku. Spróbuj zidentyfikować ten konkretny proces i go zamknąć. To powinno rozwiązać twój problem.
źródło
Miałem ten sam problem i żadne z powyższych rozwiązań nie działało dla mnie. Usunąłem niepoprawny folder. Następnie:
Usunął wszystkie pliki trwałe, aby wyczyścić status git, a następnie:
W końcu zadziałało.
UWAGA: Jeśli folder był na przykład folderem publicznym z plikami kompilacji, pamiętaj, aby odbudować pliki
źródło
Myślę, że problem może dotyczyć własności folderu, więc ustaw go na obecną własność użytkownika
Możesz znaleźć rozwiązanie [tutaj] [1]źródło
FWIW - Miałem podobny problem i nie jestem pewien, czy to go złagodziło (poza modem uprawnień): Zamykanie Eclipse, które korzystało z gałęzi z tym problemem.
źródło
To stare pytanie, ale może pomóc użytkownikom komputerów Mac.
Jeśli kopiujesz pliki z Time Machine ręcznie, zamiast przywracać je za pomocą Time Machine, doda ACL do wszystkiego, co może zepsuć twoje uprawnienia.
Na przykład sekcja tego artykułu zatytułowana „Jak naprawić uprawnienia do plików systemu Mac OS X” pokazuje, że „wszyscy” mają niestandardowe uprawnienia, co wszystko popsuło:
Musisz usunąć listy ACL z tych katalogów / plików. Oto odpowiedź Superużytkownika, ale oto polecenie:
sudo chmod -RN .
Następnie możesz upewnić się, że twoje katalogi i pliki mają odpowiednie uprawnienia. Używam
750
do katalogów i644
plików.źródło
Otrzymuję ten błąd i inne dziwne błędy git, gdy mam uruchomiony serwer (w Intellij). Zatrzymanie serwera i ponowna próba polecenia git często mnie naprawia.
źródło
Pracował dla mnie
źródło
Wykonałam pracę dla mnie.
źródło
Ciągnięcie mogło spowodować lokalną zmianę.
Dodaj swój nieśledzony plik:
Zmiany w skrytce.
Porzuć lokalne zmiany.
Pociągnij za pozwoleniem sudo
źródło
Niektóre pliki są chronione przed zapisem, więc nawet git nie może ich nadmiernie zapisać. Zmień uprawnienia do folderu, aby umożliwić zapis, np. Sudo chmod 775 foldername
A następnie wykonać
jeszcze raz
źródło
Pamiętaj również, aby sprawdzić uprawnienia do samego katalogu głównego!
Możesz znaleźć:
pojawi się błąd „odmowa uprawnień”.
źródło