git filter-branch
Avanzado Avanzado
Reescribe el historial de git aplicando filtros personalizados
Uso
git filter-branch --env-filter|--tree-filter|--index-filter <comando>
Ejemplos
-
git filter-branch --env-filter "export GIT_AUTHOR_EMAIL=nuevo@email.com"
Cambia el email del autor en todo el historial
advanced -
git filter-branch --tree-filter "rm -f passwords.txt"
Elimina un archivo de todo el historial
advanced -
git filter-branch --index-filter "git rm --cached --ignore-unmatch archivo-grande.zip"
Elimina un archivo grande del historial eficientemente
advanced -
git filter-branch -f --prune-empty
Elimina commits vacíos después del filtrado
advanced
Notas
- Herramienta poderosa para limpiar o modificar el historial
- Más eficiente que realizar cambios commit por commit
Advertencias
- ¡PELIGROSO! Reescribe completamente el historial del repositorio
- Nunca uses en ramas públicas sin coordinar con el equipo
Consejos
- Haz una copia de seguridad antes de usar filter-branch
- Considera git-filter-repo como alternativa moderna