O projeto de código aberto Git lançou a versão 2.56.0 em 28 de setembro de 2026, após contribuições de mais de 104 pessoas, incluindo 39 novos colaboradores. A versão se concentra em reduzir os riscos de erros de mesclagem e acelerar as operações das quais dependem grandes repositórios e serviços de hospedagem de código.
Preparação de conflitos sem tocar em outras alterações
O Git 2.56 adiciona o modo git add --resolved para processar apenas arquivos que estavam em estado de conflito. Diferentemente de comandos como git add -u, o novo modo não tenta adicionar todos os arquivos rastreados modificados, protegendo alterações locais não relacionadas à operação de mesclagem.
Antes da preparação, o Git verifica se há restos de marcadores de conflito nos arquivos de texto não mesclados. Se encontrar um marcador em qualquer arquivo especificado, deixa o índice inalterado em vez de preparar parte da operação. A operação pode ser restringida usando um pathspec, enquanto exclusões e conflitos binários são tratados normalmente, pois não contêm marcadores de texto.
Aceleração da localização de bases de mesclagem
A versão aprimorou o algoritmo de busca pelos melhores ancestrais comuns entre commits, uma operação usada por mesclagens, diferenças de três pontos e comparações de pull requests. O Git agora para quando um dos lados exclusivos se esgota na fila de busca, pois nesse momento não pode surgir uma nova base de mesclagem.
A alteração, em um caso de um grande repositório monolítico, reduziu o tempo da operação de 0,68 segundo para 0,01 segundo. Avaliações de produtividade em dois grandes repositórios registraram uma melhoria de cerca de 70 vezes em um deles e uma média próxima de 20 vezes no outro. Além disso, a operação git merge-base --all v4.8 v4.9, em um caso relacionado ao kernel do Linux, caiu de 167.441 etapas e 0,29 segundo para 3.887 etapas e 0,01 segundo.
Reempacotamento menor para serviços de hospedagem
O Git 2.56 removeu dois obstáculos ao uso do reempacotamento baseado em caminho, uma técnica que reúne objetos de arquivos próximos na árvore do repositório para melhorar sua compactação. Em um teste com uma cópia do repositório Fluent UI, o tamanho do pacote de armazenamento caiu de 558,5 megabytes com o reempacotamento tradicional para 164,4 megabytes usando --path-walk, uma redução de cerca de 71%.
Esse método agora é compatível com mapas de acessibilidade e ilhas de diferenças, permitindo que serviços de hospedagem avaliem economias de armazenamento enquanto mantêm os mecanismos atuais de serviço e isolamento. No entanto, ele não é ativado por padrão e não representa uma conversão automática para todos os repositórios.
Ferramentas adicionais e melhorias práticas
- O comando experimental git history drop adicionou a remoção de um commit e a repetição dos commits posteriores a ele, mantendo as limitações relacionadas a conflitos, commits raiz e operações de mesclagem.
- O comando git refs unifica operações de criação, atualização, exclusão e renomeação de referências, com suporte à proteção compare-and-swap por meio de valores antigos.
- git branch --delete-merged permite excluir em massa branches mesclados de acordo com branches de rastreamento, com opção de pré-visualização e proteção de branches especificados.
- git bisect run --reset-when-found adiciona a redefinição automática do estado após encontrar o commit que causou a falha.
- O comando git repack pode descartar manualmente grandes objetos binários recuperados em clones parciais, mantendo-os disponíveis para busca no servidor confiável quando necessário.
- git log --follow melhora o rastreamento de renomeações de caminhos por meio do histórico não linear e também aprimora a exibição de gráficos com múltiplas raízes.
Por que esta versão é importante?
O valor prático do Git 2.56 não se limita a novos comandos; a versão aborda pontos de atrito diretos no trabalho de desenvolvedores e gerentes de repositórios. O modo git add --resolved reduz a possibilidade de incluir alterações não intencionais, enquanto as melhorias nas bases de mesclagem e no reempacotamento têm como alvo os custos de tempo e armazenamento em grandes repositórios. Ainda assim, algumas ferramentas são experimentais ou manuais, especialmente os comandos de gerenciamento do histórico e de limpeza de objetos em clones parciais, portanto não devem ser tratadas como políticas automáticas ou substitutos incondicionais dos fluxos de trabalho existentes.
A versão indica que o projeto Git continua aprimorando o desempenho no nível dos algoritmos e das estruturas internas, e não apenas adicionando comandos para o usuário final. Os detalhes da versão recomendam consultar as notas completas do Git 2.56 para revisar as demais alterações antes de adotar recursos experimentais em ambientes de produção.