A comunidade de desenvolvimento acaba de ganhar um presente que promete economizar cliques, digitações (e nervos): o Git 2.54 está disponível com uma lista generosa de recursos pensados para quem vive no terminal. Do novo comando git history à possibilidade de criar hooks diretamente no arquivo de configuração, a atualização mira algo simples: tornar o versionamento menos burocrático e mais rápido.
Por que essa atualização importa?
Se você compila kernels, mantém projetos open source ou simplesmente quer menos fricção na hora de versionar código, o Git 2.54 resolve dores clássicas. As novidades reduzem o número de passos em tarefas corriqueiras, diminuem o risco de conflitos e — bônus — deixam o repositório mais enxuto automaticamente. Na prática, isso se traduz em builds mais rápidos, menos tempo aguardando operações I/O e foco total no que interessa: codar (ou jogar, caso esteja usando aquela GPU nova que você acabou de instalar).
Comando “git history”: edite ou divida commits sem virar refém do rebase
Todo mundo já cometeu o pecado de escrever “fix bug” no commit message ou misturar features distintas na mesma alteração. Antes, o caminho era um git rebase -i com passos manuais e risco de conflitos. Agora entra em cena o experimental git history:
- history reword <commit>: abre seu editor e deixa você corrigir apenas a mensagem desejada, sem tocar no working tree.
- history split <commit>: exibe os hunks do commit e permite separá-los em dois commits independentes, estilo git add -p.
Ou seja, o comando foca em cirurgias rápidas. Nada de mexer em merge commits ou encarar conflitos intermináveis — se houver risco de conflito, ele simplesmente aborta. Como é construído sobre a mesma infraestrutura do git replay, também funciona em repositórios bare, ótimo para automações de CI/CD.
Hooks no arquivo de configuração: adeus ao copia-cola de scripts
Distribuir aquele script de pre-commit para todos os repositórios do time sempre foi um pesadelo. O Git 2.54 resolve o drama permitindo definir hooks diretamente no .gitconfig:
[hook "linter"]
event = pre-commit
command = ~/bin/linter --cpp20
Quer rodar mais de um hook no mesmo evento? Basta criar novas seções; o Git executa tudo em ordem. E se precisar desativar temporariamente, use hook.nome.enabled = false — simples assim. A velha pasta .git/hooks continua valendo, mas agora vira plano B.
Imagem: Internet
Geometric maintenance agora é padrão
Lançada como opção em 2.52, a estratégia de reempacotamento geométrico passa a ser o default quando você roda git maintenance run. Em vez de um GC completo (lento e pesado), o algoritmo combina pacotes de objetos de forma incremental, mantendo o repositório enxuto sem travar sua máquina — algo que faz diferença em monorepos gigantes ou SSDs de entrada.
Melhorias menores que somam (e muito)
- git add -p: novas teclas J/K indicam se você já aceitou ou pulou hunks, além do modo
--no-auto-advancepara revisar com calma. - git replay: agora atualiza refs de forma atômica e ganhou modo
--revert. - HTTP 429: o cliente enfim respeita Retry-After e configurações de retry.
- git log -L: compatível com
-S,-Ge opções de cor/diff — perfeito para caçar bugs linha a linha. - MIDX incremental compacta camadas antigas, reduzindo latência em clonar/fetch.
- Aliases internacionais: use nomes com acentuação ou ideogramas sem gambiarra.
- git rebase –trailer: adiciona trailers em lote, excelente para fluxos de code-review.
- Assinaturas GPG: commits assinados com chaves expiradas não aparecem mais como “vermelhos”.
Como testar agora mesmo
No Linux, a maioria das distros rolling já traz o 2.54 nos repositórios oficiais. Em sistemas que ainda não atualizaram, o caminho mais rápido é compilar a partir da tag v2.54.0 ou usar gerenciadores como brew (macOS) e choco (Windows). Vale lembrar que alguns recursos, como git history, estão marcados como experimentais — habilite com responsabilidade se o repositório for crítico.
Resumindo: o Git 2.54 não reinventa a roda, mas a faz girar com menos esforço. Para quem vive de commits (e quer mais tempo livre para testar aquele novo teclado mecânico com switch silencioso), a atualização é um download obrigatório.
Com informações de GitHub Blog