Algo está sucediendo con uno de los archivos en mi repositorio git local. Cuando intento cambiar la rama dice:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
¿Qué podría significar eso?
Algo está sucediendo con uno de los archivos en mi repositorio git local. Cuando intento cambiar la rama dice:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
¿Qué podría significar eso?
Respuestas:
Esto podría significar que otro programa está usando el archivo, lo que impide que git "mueva" el archivo dentro o fuera del directorio de trabajo cuando intenta cambiar las ramas.
Esto sucedió en Windows Vista, donde eclipse es el programa que "usa" el archivo. El archivo puede no estar realmente abierto en eclipse, pero puede haber sido abierto por un proceso ejecutado por eclipse.
En este caso, intente cerrar el archivo en cualquier aplicación que pueda haberlo usado. Si eso no funciona, salga por completo de cualquier aplicación que pueda haber abierto el archivo.
GitKraken
, puede obtener esto si ejecuta comandos como un rebase
Tuve este problema y lo resolví con el comando: el comando git gc
anterior elimina los archivos temporales e innecesarios. (Recolector de basura.)
git pull
iniciado git gc
automáticamente, y gc intentó acceder a algunos archivos .pack y .inx. Estos fueron retenidos por el proceso "Windows Git", ese git pull
comando de propiedad . Ejecutar git gc
manualmente y que git pull
realmente resuelve el problema.
git gc
tengo el mismo error otra vez cuando gc
estaba en marcha
esta solución desde aquí funcionó para mí:
Esta es una respuesta específica de Windows, por lo que sé que no es relevante para usted ... Solo la incluyo para el beneficio de los futuros buscadores.
En mi caso, fue porque estaba ejecutando Git desde una línea de comando no elevada. "Ejecutar como administrador" me lo arregló.
Ctrl+C
para terminar la larga lista de archivos que no se pueden vincular; salí de gitbash, mi IDE y la aplicación de Windows GitHub; reinició gitbash en modo elevado "Ejecutar como administrador"; y corrió git gc --aggressive
. Tardó un tiempo en completarse, pero lo logró sin errores.
Encontré este problema al hacer un git pull
.
Lo intenté git gc
y resolvió mi problema.
En mi caso no hay procesos que toquen el archivo o directorio. Tal vez sucede si la ruta es muy larga, debido a una restricción del sistema operativo (Windows). Intente habilitar el indicador de soporte de ruta larga en la configuración global de git como se indica a continuación:
git config --global core.longpaths true
o intente configurar el indicador de respuesta sí / no si no es conflictivo para usted
set GIT_ASK_YESNO=false
Si el camino es demasiado largo, no he encontrado una solución exitosa.
GIT_ASK_YESNO
, no puedo encontrar información sobre este. De dónde viene ?
core.longpaths
con adicionales: reinicio --hard ciruela gc trabajado para mí - pero tuvo que cerrar Android Studio para no estropear con su acumulación en las herramientas
Lo intenté git gc
y resolvió mi problema.
Esto podría ser útil para alguien; Si todo lo anterior no funcionó para usted, siga estos pasos:
Cierre su IDE (el mío era Eclipse, no estoy seguro si se aplica a Intellij y otros) o cualquier otra aplicación que pueda estar usando git.
Abra git desde la línea de comando (en mi caso tenía git bash) y ejecútelo git gc
como lo han mencionado otros.
Esto hizo la magia para mí.
Como estoy usando gitkraken y símbolo del sistema, me encontré con el mismo problema. Y luego ejecuto el git gc
comando, resolvió mi problema. Así que estoy feliz y quiero compartir algunos de los puntos que podrían ser útiles.
Que git gc
va a hacer
git gc
eliminar objetos inalcanzables que pueden haberse creado a partir de invocaciones anteriores de git add.
Cuando correr git gc
?
Desde doc , se alienta a los usuarios a ejecutar esta tarea de forma regular dentro de cada repositorio para mantener una buena utilización del espacio en disco y un buen rendimiento operativo.
¿Cómo hacer que sea autoconfigurable?
Algunos comandos git pueden ejecutar automáticamente git gc; vea la bandera --auto a continuación para más detalles. Si sabe lo que está haciendo y todo lo que quiere es deshabilitar este comportamiento permanentemente sin más consideraciones, simplemente haga
git config --global gc.auto 0
Tuve este tipo de problema en Windows 7 y resultó ser debido a algún git.exe
proceso huérfano .
Para resolverlo, abra el Administrador de tareas y elimine todos los git.exe
procesos.
Como los git
comandos son de corta duración, normalmente nunca debería ver ninguno git.exe
en el Administrador de tareas. Cuando están allí, generalmente significa que algo está mal, y debes eliminar esos procesos.
En Windows 8: ejecuté git gc y decía que git gc ya se estaba ejecutando, ejecuté git gc --force y ejecutó el recolector de basura.
Luego podría cambiar ramas y fusionar sin ningún problema, intente git gc --force.
Quizás el proceso gc no se detuvo con gracia por una razón u otra.
Tuve este problema con los .tmp
archivos en la /.git/objects/pack
carpeta. Creo que algo había fallado durante una inserción o extracción, por lo que eliminé estos archivos temporales y restablecí el HEAD a mi último commit. No estoy seguro si esto es aconsejable, pero funcionó para mí. También git count-objects -v
me dio una lista de los .tmp
archivos que no pertenecían a la carpeta del paquete.
O para suprimir los mensajes y / n en Windows git open cmd.exe
y ejecutar:
SETX GIT_ASK_YESNO false
visto aquí: https://twitter.com/petercamfield/status/494805475733807104
git gc
, git count-objects -v
ayuda a identificar los objetos temporales sobrantes en la pack
carpeta.
Pude resolver esto abriendo Powershell como Administrador y desde allí
git checkout <branch_name>
Me enfrenté al mismo problema mientras hacía 'git pull'. Intenté el comando git de limpieza manual 'git gc' y resolvió mi problema.
Después de ejecutar el comando
git rm -rf foo.bar
Veo error
Unlink of file 'foo.bar' failed. Should I try again? (y/n)
Porque otro programa está usando este archivo . Por ejemplo, cuando ejecuto la aplicación web Java en el modelo de depuración o la aplicación web en el servidor, no puedo eliminar el archivo de registro. Apague el servidor de aplicaciones (o apague el proceso de depuración), vuelva a intentar
git rm -rf foo.bar
Veo que el archivo ha sido eliminado.
Después de que ninguna de las respuestas anteriores parecía funcionar, correr git fetch -p
hizo el trabajo por mí.
Me encontré con este problema en Windows, es posible que desee ejecutar git bash como administrador y luego ejecutar los comandos de deseo, que me resolvieron el problema.
Intenté cada consejo en esta página y nada me ayudó. Estaba haciendo un git fetch
y ungit reset --hard origin/development
me dio el error Enderece. No pude restablecer la última confirmación.
Lo que ayudó fue verificar otra rama y luego verificar la rama anterior. Muy extraño pero resolvió el problema.
Si está utilizando Docker y ejecuta Windows 10, es posible que desee detener los contenedores donde se puede ejecutar el archivo. Para mostrar los estados de sus contenedores, ejecute
docker ps -a
Para detenerlos, simplemente corre
docker stop <container name or container id>
Esto funcionó para mí ya que estoy ejecutando mis archivos locales usando un archivo .sh
En Windows, vi este error en un git clone
repositorio (bastante grande). Cerrado SmartGit y se detuvo el software de copia de seguridad (CrashPlan), y después de que haya funcionado. No estoy seguro de cuál de los 2 hizo el truco, pero si se ejecuta cualquiera de los dos, esto también podría hacerlo por usted.
Tuve el mismo problema al hacer un git pull y, como se indicó anteriormente, se debió a un programa que contenía esos archivos y no permitía un git pull. El cierre del programa ayudó. Por lo general, el IDE (como Eclipse) desde donde se registran los archivos lo mantendrá en segundo plano. Cerrar el mismo y volver a ejecutar git pull me resolvió el problema.
Tuve este mismo error y al cerrar la aplicación que tenía el archivo abierto lo resolvió. Pude regresar y presionar "Y"