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 .git
carpeta 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 .git
carpeta.
Traté de agregar public/photos
a .gitignore
:
public/photos/
*.zip
Pero sin resultado. Por supuesto que podría hard reset head
hacerlo 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-branch
como se menciona en otra parte.Paso 1
Agregue los nombres de archivo a su
.gitignore
archivo.Paso 2
Paso 3
Muchas gracias a @mu.
fuente
--ignore-unmatch
usar esto funcionó para mí
fuente
Estas cadenas funcionan en mi caso:
git rm -r WebApplication/packages
Hubo 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
rm
lugar 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
dist
directorio.Luego, debe agregarlo a su
.gitignore
para que no se rastree más.fuente
Tenía un directorio duplicado (~ web / web) y eliminó el duplicado anidado cuando ejecuté
rm -rf web
mientras estaba dentro de la primera carpeta web.fuente