Estaba trabajando en un repositorio en mi cuenta de GitHub y este es un problema con el que tropecé. proyectoEliminar la carpeta y su contenido del historial de git/GitHub
- Node.js con una carpeta con algunos paquetes instalados NGP
- Los paquetes estaban en
node_modules
carpeta - añadió que la carpeta de repositorio git y empujó el código para github (no estaba pensando en el NPM parte en ese momento)
- dado cuenta de que realmente no necesita que la carpeta sea una parte del código
- eliminados de esa carpeta, empujado
En esa instancia, el tamaño del repositorio de git total era alrededor de 6MB donde el código real (todos excepto esa carpeta) era solo alrededor de 300 KB.
Ahora, lo que estoy buscando al final es una manera de deshacerse de los detalles de esa carpeta de paquetes desde la historia de git, así que si alguien la clona, no tiene que descargar 6mb de historial donde los únicos archivos reales que obtendrán a partir del último compromiso sería de 300 KB.
Busqué posibles soluciones para esto y probado estos 2 métodos
- Remove file from git repository (history)
- http://help.github.com/remove-sensitive-data/
- https://gist.github.com/1588371
El Gist parecía que funcionaba en donde después de ejecutar el script, mostró que se deshizo de esa carpeta y luego mostró que se modificaron 50 commits diferentes. Pero no me dejó presionar ese código. Cuando traté de presionarlo, decía Branch up to date
pero mostraba que 50 confirmaciones se modificaron con un git status
. Los otros 2 métodos tampoco ayudaron.
Ahora bien, aunque demostró que se deshizo del historial de esa carpeta, cuando verifiqué el tamaño de ese repositorio en mi servidor local, todavía estaba alrededor de 6MB. (También eliminé la carpeta refs/original
, pero no vi el cambio en el tamaño del repositorio).
Lo que quiero aclarar es si hay una manera de deshacerse no solo del historial de confirmaciones (que es lo único que creo que pasó) sino también de los archivos que git sigue asumiendo que uno quiere deshacer.
Digamos que se presenta una solución para esto y se aplica en mi servidor local pero no se puede reproducir en ese repositorio de GitHub, ¿es posible clonar ese repositorio, revertir al primer compromiso realizar el truco y empujarlo (o lo hace ¿Quiere decir que git todavía tendrá un historial de todos esos commits? - aka. 6MB).
Mi objetivo final es básicamente encontrar la mejor manera de deshacerse de los contenidos de la carpeta de git para que el usuario no tenga que descargar 6MB de cosas y aún posiblemente tenga las otras confirmaciones que nunca tocaron los módulos carpeta (que es más o menos todos) en la historia de git.
¿Cómo puedo hacer esto?
Si alguna de las siguientes respuestas resuelve su problema, quizás deba considerar aceptar una como respuesta a su pregunta. https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – starbeamrainbowlabs