BookinglyTech News
Software

Commit‑rewriter 0.1 permite editar mensajes de commits en repositorios Git

Una pequeña web app de Simon Willison ayuda a limpiar mensajes de commit antes de publicar releases de seguridad.

2 min de lecturaSimon Willison0 vistas

Simon Willison lanzó commit‑rewriter 0.1, una herramienta web ligera para modificar los mensajes de commit en cualquier repositorio Git. La idea surgió al preparar los security releases de Datasette, donde los commits iniciales contenían referencias internas y texto generado por agentes de código, lo que los hacía inadecuados para exposición pública.

El flujo es sencillo: se instala con uvx commit-rewriter path/to/repo (omitiendo la ruta si el terminal ya está en el directorio del proyecto) y se abre una interfaz donde se pueden editar los mensajes. Al confirmar los cambios, la aplicación crea una rama temporal con marca de tiempo que refleja el estado del repo antes de la reescritura, de modo que es posible volver atrás con un simple checkout.

La reescritura afecta a todos los commits desde el primero que se haya editado hasta el más reciente, garantizando que la historia quede coherente y libre de datos confidenciales. La solución no altera el contenido del código, solo los metadatos de los commits, lo que la hace segura para usar en pipelines de CI/CD donde se requiera publicar versiones limpias.

Aunque la herramienta está pensada para casos como los de Datasette, cualquier proyecto que necesite depurar su historial antes de un lanzamiento puede beneficiarse. No requiere configuración avanzada y funciona con cualquier repositorio que el usuario tenga permiso de escritura. La creación automática de la rama con timestamp también permite auditar los cambios y revertirlos sin perder historial.

Qué implica operarla: al generar una nueva rama, el repositorio duplica su estado, lo que incrementa ligeramente el espacio usado mientras la rama persiste. Es recomendable borrar la rama temporal una vez que se haya verificado la corrección. Además, al reescribir commits se modifica sus hashes, por lo que cualquier referencia externa (por ejemplo, tickets de seguimiento) debe actualizarse.

El proyecto está disponible en el blog de Simon Willison y no se menciona una licencia explícita, pero al estar distribuido mediante uvx se asume que está empaquetado como módulo Python instalable. Los usuarios pueden inspeccionar el código fuente y adaptarlo a sus necesidades.

En resumen, commit‑rewriter 0.1 ofrece una forma rápida y segura de limpiar mensajes de commit antes de publicar releases, evitando filtraciones de información interna y manteniendo la trazabilidad mediante una rama de respaldo.