0Pricing
Git & GitHub Professional Workflow · Lección

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-repo

Trabajar 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.git

Eliminar 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-paths

Eliminar 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 10M

Reescribir 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.txt

Reemplazar 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.txt

Cambian 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 --all

Coordinarse 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-repo sustituye 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

  1. Git Reflog y recuperación del historial
  2. Git Bisect para depuración
  3. Mantenimiento y limpieza de repositorios
  4. Reescritura del historial con git filter-repo
← Volver a Git & GitHub Professional Workflow