Show HN: Git-knife – Editar mensajes de commit, autores y fechas como una hoja de cálculo
Una nueva herramienta basada en Tauri llamada git-knife permite a los usuarios editar metadatos de commits de Git —mensajes, autores y fechas— en una tabla parecida a una hoja de cálculo, con buscar y reemplazar mediante regex y copias de seguridad automáticas de ramas para no tocar el contenido de los archivos. Los comentaristas debaten si hacer que reescribir el historial sea tan fácil fomenta malas prácticas, pero muchos citan usos legítimos como corregir correos de autor mal configurados, reconstruir cronologías históricas o limpiar ramas de trabajo en curso antes de compartirlas. El proyecto también provoca reflexiones más amplias sobre la complejidad de Git, la necesidad real aunque de nicho de herramientas más amigables para editar el historial, y el papel creciente de los LLMs a la hora de construir rápidamente estas utilidades.
Resumen y funciones principales
- Aplicación de escritorio (Tauri) que muestra los commits en una tabla y permite a los usuarios editar el mensaje, el autor y las fechas como si fuera una hoja de cálculo.
- Admite buscar y reemplazar con regex para correcciones por lotes.
- Hace copias de seguridad de las ramas y usa git-notes; reconstruye commits mediante
git commit-treereutilizando objetos de árbol, de modo que el contenido de los archivos nunca cambia. - Una versión posterior advierte sobre commits firmados y puede volver a firmar los commits reescritos con la clave del usuario.
Capturas de pantalla y comentarios sobre la UX
- Varios comentaristas querían que las capturas de pantalla aparecieran de forma destacada en el README para evitar clonar a ciegas.
- El alojamiento inicial de la captura (Imgur) tenía problemas en móviles; luego se sustituyó por una imagen alojada en GitHub.
- Algunos pensaron que la captura parecía una foto de un monitor; otros señalaron que era una ventana transparente de GNOME/Zorin, con metadatos que confirmaban que era una captura real.
- Hubo peticiones de una versión TUI y de una interfaz de arrastrar y soltar para operaciones tipo rebase, incluyendo reordenar commits y editar qué archivos pertenecen a cada commit.
Casos de uso para editar metadatos
- Corregir correos o identidades de autor incorrectos en muchos commits.
- Limpiar el historial antes de hacer push, incluidas correcciones de crédito para colaboradores.
- Reconstruir cronologías históricas (p. ej., rastrear líneas de tiempo, leyes, fuentes de archivo) en las que las fechas de los commits deben reflejar los momentos reales de cambio.
- Dividir repositorios preservando metadatos precisos de autor/fecha para subconjuntos de archivos.
- Usos personales “cosméticos”, como ocultar la procrastinación o ajustar las horas de trabajo percibidas.
Preocupaciones y limitaciones
- Algunos sostienen que esto hace demasiado fácil reescribir un historial peligroso; otros lo comparan con un “cuchillo” útil pero afilado para la limpieza local o el trabajo archivístico.
- Cabe señalar que los historiales firmados con múltiples autores son, en la práctica, inmutables; el historial no firmado se considera un posible riesgo para la cadena de suministro. La herramienta se presenta como más adecuada para ramas de un solo autor o en curso de trabajo.
Relación con flujos de trabajo y herramientas existentes de Git
- Se comparó y contrastó con
git rebase -i, que algunos ya consideran un editor de commits tipo hoja de cálculo. - Menciona herramientas alternativas como
git-filter-repoygit-revisepara flujos de trabajo de reescritura más avanzados o diferentes.
Meta: LLMs y herramientas
- Discusión tangencial sobre el papel de los LLMs en la creación de utilidades pequeñas y documentación.
- Algunos elogian a los LLMs por permitir herramientas de nicho y scripts puntuales; otros no soportan el “habla de LLM” en la documentación y los comentarios ruidosos generados por IA en el código.