repositorio remoto pudo publickey permission leer fatal git git-push git-checkout

remoto - Error de inserción de Git: no se puede desvincular de viejo(Permiso denegado)



git github com permission denied publickey fatal no se pudo leer del repositorio remoto (11)

En el servidor remoto, tengo un enlace de post-recepción configurado para hacer un checkout de git de mi repositorio:

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

Pero cuando hago un push desde mi máquina local al repositorio de git en el servidor, recibo los siguientes mensajes de error:

remote: error: unable to unlink old ''<file>'' (Permission denied)

Esto aparece muchas veces, un mensaje de error para casi todos los archivos.

Sin embargo, tengo un archivo README.txt que puedo cambiar usando git, aquí están sus permisos:

-rw-r--r-- 1 <serverusername> <serverusername> 2939 Aug 2 10:58 README.txt

Pero otros archivos con exactamente el mismo propietario y los mismos permisos, me dan ese error.

En otro repositorio local para otro sitio web, tengo los archivos con el nombre de usuario de mi máquina local como propietario, y cuando presiono para el servidor remoto, respeta el propietario del servidor remoto de los archivos y funciona como un amuleto.

Obviamente, parece un error relacionado con los permisos, pero no puedo encontrar la manera de solucionarlo, ¿alguna sugerencia?


¡También recuerde verificar el permiso del directorio raíz en sí mismo!

Puedes encontrar:

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

y aparecerá un error de ''permiso denegado''.


Algunos archivos están protegidos contra escritura, incluso Git no puede sobre escribirlo. Cambie el permiso de la carpeta para permitir la escritura, por ejemplo, sudo chmod 775 foldername

Y luego git pull nuevamente


Creo que el problema puede ser con la propiedad de la carpeta, así que configúrela a la propiedad del usuario actual

sudo chown -R your_login_name / path / to / folder

Puedes encontrar la solución here


Cuando tiene que desvincular un archivo, debe tener el permiso ''w'' para el directorio, en qué archivo, no para el archivo ...


Esta es una vieja pregunta, pero esto puede ayudar a los usuarios de Mac.

Si está copiando archivos de Time Machine manualmente, en lugar de restaurarlos a través de Time Machine, agregará ACLs a todo, lo que puede arruinar sus permisos.

Por ejemplo, la sección de este artículo que dice "Cómo corregir los permisos de archivos de Mac OS X" muestra que "todos" tienen permisos personalizados, lo que complica todo:

Debe eliminar las ACL de esos directorios / archivos. Esta respuesta de Súper Usuario va dentro, pero aquí está el comando:

sudo chmod -RN .

Entonces puede asegurarse de que sus directorios y archivos tengan los permisos adecuados. Uso 750 para directorios y 644 para archivos.


FWIW: tuve un problema similar y no estoy seguro si esto lo alivió (más allá del mod de permiso): cerrando Eclipse que estaba usando la rama con este problema.


Recibo este error y otros errores extraños de git cuando tengo un servidor en ejecución (en Intellij). Detener el servidor y volver a intentar el comando git con frecuencia me lo arregla.


Si está utilizando cualquier IDE, lo más probable es que el proceso haya sido utilizado por algún proceso. Al igual que su gato podría estar utilizando el archivo. Intenta identificar ese proceso en particular y ciérralo. Eso debería resolver tu problema.


Tuve el mismo problema y ninguna de las soluciones anteriores funcionó para mí. Eliminé la carpeta ofensiva. Entonces:

git reset --hard

Eliminado cualquier archivo persistente para limpiar el estado de git, luego lo hizo:

git pull

Finalmente funcionó.

NOTA: Si la carpeta era, por ejemplo, una carpeta pública con archivos de compilación, recuerde reconstruir los archivos.


git reset --hard

Trabajó para mi


sudo chmod -R ug+w .;

Este comando solucionaría el problema. Le da permisos de escritura a la carpeta.