2012-05-05 13 views
33

Cuando se ejecuta git gc, sigo viendo este error:¿Qué puedo/debo hacer con este error de git gc? (Rm: no se puede desvincular Permiso denegado paquete)

rm: cannot unlink 'pack-30b1ff2[reset of hash].pack': Permission denied 

¿Qué puedo/debo hacer acerca de este error?

actualización

Lo sentimos, debería haber proporcionado más información. Sí, he intentado reiniciar. De hecho, los reinicios ya me han solucionado problemas de gc.

Solo noté este problema porque cuando abro Git Gui, de vez en cuando me obliga a comprimir la base de datos. Eventualmente noté que después de abrir un par de veces a Git Gui, eso seguía presionándome, a pesar de que hice clic en Sí, y me salió "exitoso".

Así que intenté ejecutarlo con la configuración de Git EXT - mantenimiento de Git - comando Compress git database. Este comando me dijo que había un error (luz roja en Git EXT mientras que había luz verde en Git Gui).

El error que publiqué anteriormente sin embargo fue de ejecutar git gc directamente desde git bash.

¿Debo programar una exploración de disco? ¿Podrían los sectores defectuosos estar causando esto? Estaba esperando que esto sería una respuesta rápida :(

+1

Compruebe los permisos, y si se ven sanos, haga una copia de seguridad y verifique su sistema de archivos. – Mat

+0

Esto está en Windows 7. ¿Debo verificar los permisos en la carpeta .git? ¿Git se ejecuta como mi cuenta de usuario? Soy un administrador, y ese grupo tiene control total en la carpeta .git. – danludwig

+0

Lo siento, había asumido Linux. Nunca entiendo los detalles exactos de los permisos de Windows. Pero no deberías estar desarrollando una cuenta de administrador en primer lugar. – Mat

Respuesta

29

"Permiso denegado" en Windows a menudo es causada por un bloqueo de un proceso en ejecución. Es probable que haya un estancamiento hilo Git EXT abrió el archivo de paquete.

Trate de hacer el git gc en modo seguro.

Otra opción es clonar el repositorio en un lugar nuevo y borrar el antiguo.

+0

Gracias, esperaba evitar tener que recolocar, así que con suerte el modo seguro funcionará. Intentaremos en el próximo reinicio. – danludwig

+1

Ni siquiera necesitaba modo seguro. Ejecuté git gc lo primero después de un arranque normal, y no hubo ningún error de permiso denegado. Gracias. – danludwig

+0

@danludwig ¡Lo primero después de un arranque normal me funcionó muy bien también! ¡Gracias por la pista! – cregox

18

en mi caso fue TortoiseGit. para resolver el problema que abre la configuración de TortoiseGit -> Icono Superposiciones y establecer el caché de estado en "Ninguno". Ahora el procedimiento ss TGitCache finalizó, por lo que todos los objetos son "libres" para ser procesados ​​por git gc.

enter image description here

+0

Ah, qué tonta tortuga ... – Lukman

1

que necesita para cerrar la consola, donde se produce el comando que bloquea el comando. Esto podría ser VI que está bloqueando el archivo o cualquier comando que haya sido eliminado. La solución más fácil es cerrar todo y volver a abrir. Debería poder ejecutar el comando sin problema.

Cuestiones relacionadas