Show HN: Git-knife – Editar mensagens de commit, autores e datas como uma planilha
Uma nova ferramenta baseada em Tauri chamada git-knife permite aos usuários editar metadados de commits do Git — mensagens, autores e datas — em uma tabela semelhante a uma planilha, com localizar-e-substituir por regex e backups automáticos de branches para evitar tocar no conteúdo dos arquivos. Os comentaristas debatem se tornar essas reescritas de histórico tão fáceis incentiva práticas ruins, mas muitos citam usos legítimos como corrigir e-mails de autor mal configurados, reconstruir cronologias históricas ou limpar branches de trabalho em andamento antes de compartilhar. O projeto também provoca reflexões mais amplas sobre a complexidade do Git, a necessidade de ferramentas mais amigáveis para edição de histórico e o papel crescente dos LLMs na construção rápida desse tipo de utilitário.
Visão geral e recursos principais
- Aplicativo de desktop (Tauri) que mostra commits em uma tabela e permite aos usuários editar mensagem, autor e datas como uma planilha.
- Suporta localizar-e-substituir com regex para correções em lote.
- Faz backup dos branches e usa git-notes; reconstrói commits via
git commit-treereutilizando objetos de árvore, de modo que o conteúdo dos arquivos nunca muda. - Uma versão posterior avisa sobre commits assinados e pode re-assinar commits reescritos com a chave do usuário.
Capturas de tela e feedback de UX
- Vários comentaristas queriam capturas de tela em destaque no README para evitar clonar às cegas.
- A hospedagem inicial da captura de tela (Imgur) tinha problemas em dispositivos móveis; depois foi substituída por uma imagem hospedada no GitHub.
- Alguns acharam que a captura parecia uma foto de um monitor; outros apontaram que era uma janela transparente do GNOME/Zorin, com metadados confirmando que era uma captura real de tela.
- Houve pedidos por uma versão TUI e por uma interface de arrastar e soltar para operações no estilo rebase, incluindo reordenar commits e editar quais arquivos pertencem a qual commit.
Casos de uso para edição de metadados
- Corrigir e-mails ou identidades de autor incorretos ao longo de muitos commits.
- Organizar o histórico antes de enviar, incluindo correções de crédito para contribuidores.
- Reconstruir cronologias históricas (por exemplo, cronologias extraídas, leis, fontes de arquivo) em que as datas dos commits precisam refletir os momentos reais das mudanças.
- Dividir repositórios preservando metadados precisos de autor/data para subconjuntos de arquivos.
- Usos pessoais “cosméticos”, como esconder procrastinação ou ajustar as horas de trabalho percebidas.
Preocupações e limitações
- Alguns argumentam que isso torna fácil demais reescrever o histórico de forma perigosa; outros o comparam a uma “faca” útil, mas afiada, para limpeza local ou trabalho de arquivo.
- Observa-se que históricos assinados com múltiplos autores são, na prática, imutáveis; histórico não assinado é visto como um possível risco para a cadeia de suprimentos. A ferramenta é apresentada como mais adequada para branches de um único autor ou em andamento.
Relação com fluxos de trabalho e ferramentas Git existentes
- Comparado e contrastado com
git rebase -i, que alguns já consideram um editor de commits no estilo planilha. - Menciona ferramentas alternativas como
git-filter-repoegit-revisepara fluxos de reescrita mais avançados ou diferentes.
Meta: LLMs e ferramentas
- Discussão lateral sobre o papel dos LLMs na produção de pequenas utilidades e documentação.
- Alguns elogiam os LLMs por viabilizar ferramentas de nicho e scripts pontuais; outros não gostam do “LLM-speak” em docs e de comentários barulhentos gerados por IA no código.