Reescritura del historial con git filter-repo
Aprenda a reescribir el historial de un repositorio a gran escala para eliminar archivos grandes o datos confidenciales mediante git filter-repo.
Reescritura del historial con git filter-repo es una lección gratuita de Git & GitHub Professional Workflow en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Git & GitHub Professional Workflow, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Git & GitHub Professional Workflow incluye 4 lecciones en total.
¿Por qué reescribir el historial?
A veces debe reescribir todo el historial de un repositorio: para eliminar una contraseña filtrada, borrar archivos enormes confirmados por accidente o corregir los correos electrónicos de autor en todos los commits.
Conozca git filter-repo
git filter-repo es la herramienta moderna y rápida para reescribir el historial. Sustituye a la antigua y lenta git filter-branch.
Instalar la herramienta
Es un programa independiente que suele instalarse mediante pip o un gestor de paquetes.
pip install git-filter-repoTrabajar siempre sobre un clon
La reescritura del historial es destructiva. Trabaje sobre un clon recién creado para poder descartarlo si algo sale mal.
git clone --mirror git@github.com:you/repo.gitEliminar un archivo del historial
Para eliminar un archivo de todos los commits, utilice las opciones --path y --invert-paths.
git filter-repo --path secrets.env --invert-pathsEliminar blobs grandes
Puede eliminar los archivos que superen un umbral de tamaño para reducir un repositorio demasiado grande.
git filter-repo --strip-blobs-bigger-than 10MReescribir los correos electrónicos de autor
Corrija un correo electrónico de autor incorrecto en todos los commits mediante un mailmap o un callback.
git filter-repo --mailmap my-mailmap.txtReemplazar texto en el historial
Elimine las cadenas secretas de todos los lugares donde aparezcan utilizando un archivo de expresiones.
git filter-repo --replace-text expressions.txtCambian los hashes de los commits
La reescritura del historial genera nuevos hashes de commit para todo lo que se vea afectado. El historial del repositorio diverge de cualquier copia anterior.
Forzar el push del resultado
Después de reescribir el historial, debe hacer force push porque el historial remoto ya no coincide.
git push --force --allCoordinarse con el equipo
Como los clones de todos están ahora desactualizados, sus compañeros de equipo deben volver a clonar el repositorio. Anuncie la reescritura para evitar que los datos eliminados vuelvan a aparecer.
Comprobación rápida
Compruebe su comprensión de la reescritura del historial.
Recapitulación
Ha aprendido a reescribir el historial:
git filter-reposustituye a filter-branch- Elimina archivos, blobs grandes o texto secreto de todo el historial
- Trabaje siempre sobre un clon; los hashes de commit cambian
- Haga force push y pida al equipo que vuelva a clonar el repositorio después
Preguntas frecuentes
¿La lección «Reescritura del historial con git filter-repo» es gratis?
Sí — el texto completo de «Reescritura del historial con git filter-repo» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Git & GitHub Professional Workflow, actualiza a CoddyKit PRO. El curso de Git & GitHub Professional Workflow incluye 4 lecciones en total.
¿Qué aprenderé en «Reescritura del historial con git filter-repo»?
Aprenda a reescribir el historial de un repositorio a gran escala para eliminar archivos grandes o datos confidenciales mediante git filter-repo. Practicas Git & GitHub Professional Workflow con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Git & GitHub Professional Workflow?
No se requiere experiencia previa. Git & GitHub Professional Workflow en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Reescritura del historial con git filter-repo»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Git & GitHub Professional Workflow?
Sí. Cada lección de Git & GitHub Professional Workflow incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Git Reflog y recuperación del historial
- Git Bisect para depuración
- Mantenimiento y limpieza de repositorios
- Reescritura del historial con git filter-repo