Cómo networkingucir el tamaño de un repository en Github

Accidentalmente confié algunos grandes files wav de testing en mi repository y están usando mucho espacio en mi count Github. ¿Cómo puedo eliminar estos files del historial?

Nota: estos files fueron comprometidos hace algún time y no están en el compromiso HEAD.

No hay forma de eliminarlos sin modificar el historial, por lo que si alguien ha extraído los cambios, es posible que tenga que lidiar con ese problema: ver la recuperación de la database remplazada en man git-rebase . Esto puede ser bastante malo, dependiendo de su flujo de trabajo: de una forma u otra, probablemente tenga que hacer que todos sepan que deben cambiar a la "nueva" twig principal, volviendo a basar cualquier trabajo en progreso en la parte superior.

Si la confirmación todavía estuviera en la punta, podría restablecer la confirmación anterior:

 git reset --hard HEAD^ 

o enmendarlo:

 git rm test.wav git commit --amend 

Pero como ya no está en la punta, probablemente la mejor opción sea probablemente hacerlo con una database interactiva:

 git rebase -i <commit-before-mistake> 

Cambie "pick" a "edit" en la confirmación que desea corregir, ¡luego inténtelo! (o incluso eliminar toda la confirmación si está bien) *

Después de terminar de elegir cualquiera de estos, deberás forzar el empuje, ya que ya no es un avance rápido:

 git push -f origin 

* Si posteriormente ha realizado modificaciones en estos files, recibirá problemas a medida que continúe en la database. Deben ser fáciles de tratar, ya que solo quieres que los files desaparezcan. Por supuesto, si ha habido un centenar de compromisos desde entonces, todos causarán conflictos, podría echar un vistazo a git-filter-branch . El ejemplo relevante de la página man es:

 git filter-branch --index-filter 'git rm --cached --ignore-unmatch filename' HEAD 

  1. Quítelo de su historial local en la sucursal donde lo haya comprometido. Una forma de hacerlo es usar git commit --amend si es tu commit de HEAD; otro es git rebase --interactive .
  2. Forzar push la twig actualizada a github.

     git push --force github 

    (donde github es el nombre de su control remoto para GitHub).

Esto lo eliminará del historial activo. Para reclamar el espacio, GitHub necesitará hacer una recolección de basura. No estoy seguro de una manera de hacerlo explícitamente, si no lo hacen de forma automática. Es posible que deba presentar una request de soporte.