En el servidor remoto, tengo un enlace de post-recepción configurado para hacer un pago git de mi repositorio:
#!/bin/sh
GIT_WORK_TREE=/var/www/<website> git checkout -f
Pero cuando hago un envío 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 al servidor remoto respeta al propietario del servidor remoto de los archivos y funciona de maravilla.
Obviamente parece un error relacionado con los permisos, pero no puedo encontrar una manera de solucionarlo, ¿alguna sugerencia?
fuente
sudo chmod -R g+w
sobre las carpetas culpables.mv
acciones que sobrescripciones.ls -l
pantalla indica el tipo de archivo y no está relacionado con los permisos. Los nueve caracteres restantes están en tres conjuntos, cada uno representando una clase de permisos como tres caracteres. El primer conjunto representa la clase de usuario. El segundo conjunto representa la clase de grupo. El tercer conjunto representa la clase de los demás. Elg+w
in chmod le dag
permiso al conjunto de grupos (el parámetro) para escribir (elw
parámetro)Este comando solucionaría el problema. Otorga permisos de escritura a la carpeta.
fuente
Si está utilizando algún IDE, el problema es que ese archivo fue utilizado por algún proceso. Al igual que tu gato podría estar usando el archivo. Intenta identificar ese proceso en particular y ciérralo. Eso debería resolver tu problema.
fuente
Tuve el mismo problema y ninguna de las soluciones anteriores funcionó para mí. Eliminé la carpeta ofensiva. Luego:
Eliminó cualquier archivo persistente para limpiar el estado de git, luego hizo:
Finalmente funcionó.
NOTA: Si la carpeta era, por ejemplo, una carpeta pública con archivos de compilación, recuerde reconstruir los archivos
fuente
Creo que el problema puede ser con la propiedad de la carpeta, así que configúrela con la propiedad actual
Puedes encontrar la solución [aquí] [1]fuente
FWIW: tuve un problema similar y no estoy seguro de si esto lo alivió (más allá del mod de permiso): Cerrar Eclipse que estaba usando la rama con este problema.
fuente
Esta es una vieja pregunta, pero 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á ACL a todo, lo que puede alterar 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 lo arruina todo:
Debe eliminar las ACL de esos directorios / archivos. Esta respuesta de Superusuario entra, pero aquí está el comando:
sudo chmod -RN .
Luego puede asegurarse de que sus directorios y archivos tengan los permisos adecuados. Yo uso
750
para directorios y644
para archivos.fuente
Recibo este error, y otros errores extraños de git, cuando tengo un servidor ejecutándose (en Intellij). Detener el servidor y volver a intentar el comando git con frecuencia me lo soluciona.
fuente
Trabajó para mi
fuente
Hizo el trabajo por mí.
fuente
Tirar puede haber creado un cambio local.
Agregue su archivo sin seguimiento:
Stash cambios.
Suelta los cambios locales.
Tire con permiso de sudo
fuente
Algunos archivos están protegidos contra escritura que incluso git no puede sobreescribirlo. Cambie el permiso de la carpeta para permitir la escritura, por ejemplo, sudo chmod 775 foldername
Y luego ejecutar
de nuevo
fuente
¡Recuerde también verificar el permiso del directorio raíz mismo!
Puedes encontrar:
y aparecerá el error 'permiso denegado'.
fuente