github - remoto - por favor asegúrese que tiene los permisos de acceso correctos y que el repositorio existe
fatal: no se pudo abrir ''.git/COMMIT_EDITMSG'': Permiso denegado (10)
En mi caso, la razón es que el usuario actual (A) no es el propietario del archivo COMMIT_EDITMSG
(B), cambia el usuario actual a B y vuelve a comprometerse. sudo su B
Estoy tratando de implementar octopress en páginas github. Seguí estas instrucciones:
http://octopress.org/docs/deploying/github/
Todo funcionó bien hasta la parte de confirmación, donde recibí un error:
fatal: no se pudo abrir ''.git / COMMIT_EDITMSG'': Permiso denegado
Soy el propietario de mi página github.io, por supuesto, y nunca tuve este problema antes. ¿Por qué está sucediendo esto y, lo que es más importante, cómo lo resuelvo?
Este no es un mensaje de error del repositorio remoto de Git, este es un problema con sus archivos locales. Probablemente utilizó git (o rake) como otro usuario (como root) en este mismo directorio, y creó archivos que ahora no puede sobrescribir.
Simplemente use chown para cambiar la propiedad de los archivos a su usuario actual, por ejemplo:
chown --recursive $(whoami) .
Esto tiende a no ser un problema de permisos.
Esta situación puede ocurrir cuando se le pide que grabe un mensaje de confirmación al fusionarse (por ejemplo) y no guarda y sale del editor de texto, sino que simplemente se cierra.
Git parece suponer que aún hay alguien editando un mensaje de compromiso y se niega a sobrescribir el archivo existente, ya que podría causar un comportamiento inesperado y la pérdida de otro mensaje de confirmación.
Lo resolví eliminando .git/COMMIT_EDITMSG
. Extraño, lo sé.
Nota rápida:
Si ha configurado un archivo como oculto / de solo lectura, esto puede ocurrirle. Intenta configurar toda la carpeta para que se oculte y desmarca solo de forma leída.
Si está trabajando en el maldito Microsoft Windows, el error podría deberse al hecho de que está "viendo" los archivos ocultos en el explorador de archivos. ¡Eso es todo!
Si está utilizando TortoiseGit, puede tener un diálogo de confirmación ya abierto
Simplemente ejecute en su línea de comando: chmod 777 -Rf /var/www/html/project-name/.git
otra solución para los usuarios de Windows: si está usando YandexDisk y su carpeta .git bajo sincronización, YandexDisk configura los atributos ocultos y de solo lectura después de las sincronizaciones. Entonces, apague YandexDisk y haga que la carpeta .git y todas las subcarpetas y archivos NO sean invisibles y no sean de solo lectura.
chmod 664
el archivo .git/COMMIT_EDITMSG
le otorga permisos de escritura grupales.
En mi situación, el archivo era propiedad de otro usuario que formaba parte de mi grupo de desarrollo. Dándole permisos de escritura grupales lo resolvió.
El directorio .git
debe estar en la raíz de su repositorio.
Comando (suponiendo que se encuentre en el directorio .git):
chmod 664 COMMIT_EDITMSG