ver repositorio quitar proyecto modificados limpiar historial eliminar commits carpeta borrar archivos archivo git version-control git-filter-branch

repositorio - limpiar historial git



Eliminar archivos borrados del historial de git (2)

Estoy tratando de dividir un subproyecto de mi repositorio git. Sin embargo, a diferencia del subdirectorio Detach (mover) en el repositorio Git separado , no lo tengo en su propio subdirectorio (y al moverlo y hacer lo anterior solo se obtiene el historial después del movimiento).

He clonado la rama desde la que quiero separar el subproyecto en su propio repositorio y eliminé todo lo que no esté usando, por lo que básicamente podría usar esto como el repositorio de mi subproyecto.

Ahora quiero deshacerme del historial de todos los archivos que ya no están en este repositorio para mantener solo el historial de archivos de los archivos que quedaron en la descendencia.

Creo que debe ser posible con git-filter-branch pero no puedo entender cómo

Muchas gracias de antemano


Ok, ahora estoy probando con la siguiente técnica, informaré si funcionó, porque parece que se está ejecutando bastante tiempo: en un zsh o bash en un repositorio CLONADO

git log --diff-filter=D --summary <start_commit>..HEAD | egrep -o ''*[[:alnum:]]*(/[[:alnum:].]*)+$'' > deleted.txt

para obtener todos los archivos borrados

for del in `cat deleted.txt` do git filter-branch --index-filter "git rm --cached --ignore-unmatch $del" --prune-empty -- --all # The following seems to be necessary every time # because otherwise git won''t overwrite refs/original git reset --hard git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d git reflog expire --expire=now --all git gc --aggressive --prune=now done;

Esto podría ser extremadamente peligroso para sus datos, así que solo intente clones.