Git push error: Unable to unlink old (Permission denied)

Na zdalnym serwerze mam skonfigurowany hook post-receive w celu dokonania kasy git z mojego repozytorium:

#!/bin/sh
GIT_WORK_TREE=/var/www/<website> git checkout -f

Ale kiedy wykonuję push z mojego lokalnego komputera do repozytorium git na serwerze, dostaję 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.

Jednak mam README.plik txt, który mogę zmienić używając Gita, oto jego uprawnienia:
-rw-r--r--  1 <serverusername>  <serverusername>  2939 Aug  2 10:58 README.txt

Ale inne pliki z dokładnie ten sam właściciel i te same uprawnienia, daj mi ten błąd.

W innym lokalnym repozytorium dla innej strony, mam pliki z nazwą użytkownika mojej lokalnej maszyny jako właściciela, a kiedy wciskam do zdalnego serwera, szanuje to właściciela zdalnego serwera plików i działa jak urok.

Oczywiście wydaje się, że błąd związany z uprawnieniami, ale nie mogę znaleźć sposobu, aby go naprawić, jakieś sugestie?

Author: pocesar, 2012-08-02

11 answers

Kiedy musisz odłączyć plik, musisz mieć uprawnienia 'w' dla katalogu, w którym jest plik, a nie dla pliku...

 249
Author: Jan Marek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-02 09:14:46
sudo chmod -R ug+w .;

To polecenie rozwiązałoby problem. Daje uprawnienia do zapisu do folderu.

 33
Author: Rajendra kumar Vankadari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-04 21:23:01

Jeśli używasz dowolnego IDE, najprawdopodobniej problem polega na tym, że plik został użyty przez jakiś proces. Jakby twój tomcat używał tego pliku. Spróbuj zidentyfikować ten konkretny proces i zamknąć go. To powinno rozwiązać twój problem.

 31
Author: Rama Krishna Gollapudi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-16 21:44:18

Miałem ten sam problem i Żadne z powyższych rozwiązań nie działało dla mnie. Usunąłem ten folder. Wtedy:

git reset --hard

Usunąłem wszystkie pliki, aby wyczyścić status gita, a następnie zrobiłem:

git pull
W końcu zadziałało.

Uwaga: Jeśli folder był na przykład folderem publicznym z plikami kompilacji, pamiętaj, aby przebudować Pliki

 5
Author: wcyn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-17 09:09:40

FWIW - miałem podobny problem i nie jestem pewien czy to go złagodziło( poza uprawnieniami mod): zamykanie Eclipse, które używało gałęzi z tym problemem.

 4
Author: cellepo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-15 21:35:59

To stare pytanie, ale może to pomóc użytkownikom komputerów Mac.

Jeśli kopiujesz pliki z Time Machine ręcznie, zamiast przywracać je za pomocą Time Machine, doda ACLs do wszystkiego, co może zepsuć Twoje uprawnienia.

Na przykład sekcja tego artykułu , która mówi "Jak naprawić uprawnienia do plików Mac OS X" pokazuje ,że "każdy" ma własne uprawnienia, co wszystko psuje:

Złe uprawnienia, od http://dreamlight.com/how-to-fix-mac-os-x-file-permissions

Musisz usunąć ACLs z tych katalogów/plików. ta odpowiedź Super Usera wchodzi w to, ale oto Komenda:

sudo chmod -RN .

Wtedy możesz upewnić się, że katalogi i pliki mają odpowiednie uprawnienia. Używam 750 do katalogów i 644 do plików.

 3
Author: kylesimmonds,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-20 10:18:27

Dostaję ten błąd i inne dziwne błędy git, gdy mam uruchomiony serwer (w Intellij). Zatrzymanie serwera i ponowne wypróbowanie polecenia git często naprawia to dla mnie.

 2
Author: Phil Carter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-28 12:58:10
git reset --hard

Pracował dla mnie

 2
Author: kreker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-24 19:40:57

Niektóre pliki są zabezpieczone przed zapisem, które nawet git nie może nadpisać. Zmień uprawnienia folderu, aby umożliwić zapis np. sudo chmod 775 foldername

And then git pull again

 1
Author: Carmela,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-09 04:47:33

Pamiętaj również, aby sprawdzić uprawnienia katalogu głównego!

Możesz znaleźć:

drwxr-xr-x  9 not-you www-data  4096 Aug  8 16:36 ./
-rw-r--r--  1     you www-data  3012 Aug  8 16:36 README.txt
-rw-r--r--  1     you www-data  3012 Aug  8 16:36 UPDATE.txt

I pojawi się błąd "Odmowa uprawnień".

 0
Author: cadavre,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-08 14:41:27

Myślę, że problem może być z własnością do folderu, więc ustaw go na bieżącą własność użytkownika

Sudo chown - r your_login_name / path / to / folder

Rozwiązanie znajdziesz tutaj

 0
Author: Soumitra Sarkar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-29 17:56:06