2011-05-12 12 views
5

El problema es que después de su bifurcación de eliminación y envío no se pierde para siempre y todavía está en el repositorio. He eliminado la rama con gran cantidad de archivos innecesarios, pero mientras siga en algún lugar en el repositorio git, la duración del comando git clone es demasiado grande.Cómo eliminar una rama y todos los objetos a los que hace referencia

Por ahora, la única forma que veo es eliminar todo el repositorio y volver a crearlo sin ramas innecesarias.

Respuesta

4

Creo que git gc --prune=now hará lo que quiera: limpie los archivos innecesarios de su repositorio.

De forma predeterminada, git gc elimina confirmaciones inalcanzables anteriores a 2 semanas, por lo que es necesario agregar --prune=now.

+0

+1 git gc limpiará efectivamente los objetos sueltos en el repositorio. Sin embargo, el problema con la clonación que lleva mucho tiempo está relacionado con las viejas revisiones de archivos que todavía residen en el repositorio. – ralphtheninja

+0

Gracias por podar, editaré mi pregunta. No estoy de acuerdo, si las confirmaciones que se eliminaron son inalcanzables (lo que parece ser el caso), se eliminarán por 'prune' – CharlesB

+1

El motivo es el reflog, que contiene referencias a los estados de sus sucursales, incluso si las ramas ya están eliminadas –

3

Es necesario eliminar completamente los archivos mediante el uso de git filter-branch

http://git-scm.com/docs/git-filter-branch

Usted puede hacer un montón de magia con este comando, lo siguiente será eliminar el nombre del fichero de todas las confirmaciones:

git filter-branch --tree-filter 'rm -f filename' HEAD 
+0

simplemente curioso: si la confirmación se ha ido, dado que la rama se ha eliminado, ¿no está 'git gc' quitándola? – CharlesB

+0

@CharlesB: Sí, pero es posible que desee utilizar git gc --prune = now para deshacerse de todos los datos. Sin embargo, esto es solo datos para el repositorio local y no tiene ningún efecto al clonarlo. Parece que esta pregunta es dos plegadas. – ralphtheninja

Cuestiones relacionadas