Soy consciente de que hay problemas similares con git relacionados con la advertencia de 'no se puede desvincular', pero no he podido usarlos.
La principal diferencia es que esto sucedió cuando no he estado tratando con submódulos de ninguna manera (nunca antes los había tratado). Creé una rama llamada 'actualización', eliminé mis archivos de marco antiguos y los copié en los nuevos. Usé git add -A, luego comprometí todo. Cuando traté de verificar la rama troncal, respondió con los siguientes errores:
warning: unable to unlink requirements/views/sk/index.php: Permission denied
warning: unable to unlink requirements/views/sv/index.php: Permission denied
warning: unable to unlink requirements/views/zh/index.php: Permission denied
warning: unable to unlink requirements/views/zh_cn/index.php: Permission denied
warning: unable to unlink requirements/views/zh_tw/index.php: Permission denied
... etc. Hay cientos de ellos.
Al principio pensé que esto era simplemente un problema de permisos, por lo que agregué permisos de escritura de grupo a todo el directorio de requisitos de forma recursiva, pero no hubo cambios.
Editar: Como se sugiere en una respuesta a continuación, intenté hacer lo mismo pero con todo lo demás cerrado. No tuve más suerte que antes.
Este problema es particularmente debilitante ya que no puedo moverme al tronco para volver al desarrollo normal.
sudo chown -R username directory
Respuestas:
Normalmente veo ese tipo de error cuando hay un proceso que no libera el identificador de esos archivos.
Asegúrese de que no se esté ejecutando nada y luego intente realizar el pago nuevamente.
Nota: también puede estar relacionado con la forma en que se ha instalado Git (en Windows, UAC puede generar un problema si msysgit está instalado en
C:\Program
oC:\Program Files
, consulte " msysgit - sh.exe - fork: Permiso denegado - Vista 64 bit " y el comentario 2 de número 437 )Nota: como se ilustra a continuación , otra causa común del problema es la cuestión de los derechos en el directorio (propietario incorrecto), no necesariamente en el archivo que no se puede desvincular.
fuente
git checkout -f master
En mi primer encuentro con este error, mi usuario tenía derechos para "escribir" en el archivo pero no en el directorio que lo contenía. Verifique los permisos del directorio que contiene el archivo.
fuente
"Desvincular" significa esencialmente "eliminar archivo" en este caso.
Este error no es causado por git en sí. Debería tener errores similares al eliminar esos archivos manualmente, en una línea de comandos o en un explorador de archivos.
fuente
No tiene el permiso de acceso, tal vez porque no es el propietario.
Arregle cambiando el propietario a usted mismo:
fuente
Estaba teniendo el problema con un archivo default-settings.php en drupal 7. En este caso no pude borrarlo o revertirlo como dijo @rtconner. No tenía una aplicación ni nada que usara este archivo, y terminó siendo un error de permisos.
Lo agregué
chmod 777 *
a la carpeta y luego pude revertirlo sin problema.fuente
777
en ninguna carpeta. Esto resolvió mi problema, pero lo cambié rápidamente a los valores predeterminados después de que se resolvió. ¡Gracias!Puede cambiar los permisos de escritura para hacerlo.
Este comando otorgará
'w'
permisos a todas las carpetas del directorio actual.fuente
Me encontré con este problema cada vez que ejecutaba "git repack" o "git gc" en mis máquinas OS X, incluso cuando ejecutaba git con privilegios de administrador, y finalmente lo resolví después de encontrar esta página: http://hints.macworld.com /comment.php?mode=view&cid=1734
La solución es abrir una terminal, ir a su repositorio de git, cd en la carpeta .git y luego hacer:
Si ese fue el problema, después de eso, sus comandos git funcionarán normalmente.
fuente
Esto también puede ocurrir cuando:
Ejecutó un proceso dentro de un contenedor Docker y:
Algunos archivos fueron generados por ese proceso y:
El destino de los archivos se monta como un volumen en el host de Docker y:
Está ejecutando
git
en el host de Docker.Si este es el caso, prepare los archivos que desea confirmar y ejecutar:
Los archivos que cumplan con los criterios anteriores tendrán el prefijo:
Son propiedad de
root
y no se pueden escribir, lo cual no es bueno. Para arreglar esa ejecución:Una solución más limpia probablemente sería usar la
--user
opción, vea esto para Docker y esto para Docker compose .fuente
Para aquellos que están usando Intellij , como dijo @rtconner, este problema no es causado por git. Dado que su IDE está bloqueado, un archivo (s), git no puede desvincularlo. Por lo tanto, debe cerrar su IDE y luego intentar fusionarlo (o lo que quiera) a través de la línea de comando.
fuente
En mi caso, era un carácter ":" en el nombre de una carpeta que evitaba que el repositorio de git se retirara en Windows.
fuente
en la terminal en mac acabo de hacer esto
y entonces
fuente
Tuve este error dentro de una máquina virtual (ejecutando Ubuntu), cuando intenté hacerlo
git reset --hard
.La solución fue simplemente ejecutar
git reset --hard
desde la máquina host de OS X en su lugar.fuente
Ninguna de las otras sugerencias funcionó para mí, pero esto sí:
sudo git reflog expire --expire=now --all && sudo git gc --prune=now --aggressive
fuente
En mi caso, mi directorio de Windows está en la carpeta de Dropbox. No es un problema específico de Git. Cuando se acaba de crear un archivo (en este caso, el archivo de bloqueo), Dropbox tarda otro segundo en realizar la sincronización. Durante ese tiempo, Dropbox usa el archivo y ningún programa de terceros (en este caso, Git) no puede eliminarlo.
Mi solución es salir de Dropbox y, por lo tanto, evitar la magia detrás de escena de la sincronización de archivos de Dropbox.
fuente
He encontrado este error y está causado por un "propietario / grupo" incorrecto del archivo / carpeta . Debe buscar ayuda al administrador de su servidor para cambiar el "propietario / grupo" de este archivo / carpeta y volver a intentarlo usando "git pull" nuevamente. O si usted es un sudoer, simplemente sudo chown "su nombre de propietario / nombre de su grupo" y vuelva a intentar extraer su repositorio. Pruébalo, ¡me funciona al 100%!
fuente
Asegúrese de que los procesos o subprocesos asociados no se estén ejecutando y realice la tarea final o fuerce el cierre según sea necesario.
Asegúrese de cambiar el permiso de propiedad.
fuente
En general, si esto sucede en Windows y está utilizando tortoisegit , es el caché de estado de tortoisegit . Mata ese proceso y será liberado.
fuente
git status
desde la línea de comando en su lugar.Solo tuve que cambiar de usuario de ubuntu a mi nombre de usuario real con el que primero hice las cosas. Eso lo arregló.
fuente
Resuelto para mí configurando mi cliente git (GitExtensions) para que siempre se ejecute en modo de administrador.
fuente
Tuve ese problema mientras usaba
IntelliJ
(14.1.3 Ultimate), quería revertir los cambios en algún archivo.Resuelto cerrando
Git Bash
abierto en otra ventana - seIntelliJ
trabajó otra prueba de reversión .fuente
Encontré este error y creo que el problema era que había 'ejecutado como administrador' cuando inicié Eclipse y creé los archivos, por lo tanto, eran propiedad de Admin (se notó al ejecutar 'ls -la' en la carpeta). Cuando más tarde intenté guardar los archivos, no me dejó ('no puedo desvincular archivos' y todo eso). Hacer un chmod en los archivos fue la solución para mí.
fuente
git gc funcionó para mí (en una nueva pestaña). Obtenía esto con cada rebase. Gracias http://www.saintsatplay.com/blog/2016/02/dealing-with-git-unlink-file-errors#.W4WWNZMzZZJ
fuente
Todo lo que necesita hacer es proporcionar permisos, ejecute el siguiente comando desde la raíz de su proyecto:
fuente
Tuve el mismo problema, probé algunas alternativas como sugirieron otros.
Pero finalmente dar el permiso correcto a la carpeta .git resuelve los problemas.
fuente
En mi caso, el problema de permisos se resolvió estableciendo
www-data
como propietario:fuente
Creo que se trata de su permiso de archivo:
fuente