Agregué más de 9000 fotos por accidente a la carpeta de mi proyecto. Y los cometió. Luego los borró del disco. Comprometido.
Ahora intento enviar cambios al servidor git. Pero tarda demasiado e intenta enviar 12 Gb de datos.
Verifiqué el tamaño de los archivos en el disco y vi que realmente la .gitcarpeta ocupa 12 Gb.
¿Cómo borrar fotos de ahí? Lo intenté git rm, pero falla:
❯ git rm public/photos
fatal: pathspec 'public/photos' did not match any files
Porque ya los borré del disco, pero todavía están en la .gitcarpeta.
Traté de agregar public/photosa .gitignore:
public/photos/
*.zip
Pero sin resultado. Por supuesto que podría hard reset headhacerlo cuando no tuviera tantas fotos basura en mi proyecto. Pero desde ese momento me comprometí muchas veces e hice muchos cambios en el código.
fuente

git add .gitignore && commit -m "ignore rule for photos"sergit add .gitignore && git commit -m "ignore rule for photos"Una respuesta muy simple es.
Paso 1:
En primer lugar, agregue los archivos sin seguimiento a los que desea eliminar:
usando
git add .ogit add <filename>.Paso 2:
Luego elimínelos fácilmente usando el comando
git rm -f <filename>aquí rm = remove y -f = forcely.fuente
git filter-branchcomo se menciona en otra parte.Paso 1
Agregue los nombres de archivo a su
.gitignorearchivo.Paso 2
Paso 3
Muchas gracias a @mu.
fuente
--ignore-unmatchusar esto funcionó para mí
fuente
Estas cadenas funcionan en mi caso:
git rm -r WebApplication/packagesHubo un git-dialog de confirmación. Debe elegir la opción "y".
git commit -m "blabla"git push -f origin <ur_branch>fuente
hizo el trabajo, restauró los archivos que había eliminado usando en
rmlugar degit rm.Primero hice un checkout del último hash, pero no creo que sea necesario.
fuente
Para eliminar el archivo confirmado antiguo y rastreado de git, puede usar el siguiente comando. Aquí, en mi caso, quiero destrabar y eliminar todo el archivo del
distdirectorio.Luego, debe agregarlo a su
.gitignorepara que no se rastree más.fuente
Tenía un directorio duplicado (~ web / web) y eliminó el duplicado anidado cuando ejecuté
rm -rf webmientras estaba dentro de la primera carpeta web.fuente