Shrinking Git Repo – Objeto en package, no en commits

Estoy intentando networkingucir un repository de Git que ronda los 2 GB.

Estoy siguiendo la sección "Eliminar objects" del Capítulo 9 (9.7) en el libro ProGit: http://git-scm.com/book/es/Git-Internals-Maintenance-and-Data-Recovery

Después de ejecutar git gc , luego git verify-pack y git rev-list , he encontrado un file .tar de unos 118MB. No necesito que esté en mi repo en absoluto. Necesita destruir para siempre.

Pero cuando trato de averiguar qué confirmaciones han usado ese file, no obtengo nada:

 git log --oneline -- news/news.tar 

¿Esto significa que el file no está en el historial del repository? Y si ese es el caso, ¿puedo dejarlo o seguiré siendo empujado como un object cuando lo haga?

Si ese es el caso, ¿cómo me deshago de él?

Usa The BFG, no git-filter-branch …

El BFG ofrece un método infalible para deshacerse de files grandes, mucho más fácil que usar git filter-branch , ver http://rtyley.github.io/bfg-repo-cleaner/ :

 $ bfg --strip-blobs-bigger-than 100M my-repo.git 

…¿aún aquí?

Si desea intentar averiguar qué ha ido mal cuando estaba siguiendo los pasos de "Eliminar objects" en la sección 9.7 del libro ProGit, desafortunadamente hay varios lugares donde es posible que salga mal.

El file news.tar encuentra actualmente en una de sus sucursales, tags u otro tipo de ref. Lo sabemos porque el file apareció cuando ejecutó git rev-list --objects --all (the '–all' param significa mirar a todos los árbitros, más allá de twigs, tags y otros types exóticos de ref) … pero tu git log --oneline -- news/news.tar no tiene un --all , solo está listndo tu twig actual. Su blob está retenido por una reference diferente, probablemente una twig o label diferente.

En serio, solo usa The BFG.

Descripción completa: soy el autor de BFG Repo-Cleaner.