lançamento do sistema de controle distribuído de textos-fonte . O Git é um dos sistemas de controle de versão mais populares, confiáveis e de alto desempenho, oferecendo ferramentas flexíveis para desenvolvimento não linear, baseadas em ramificações e fusões de ramos. Para garantir a integridade do histórico e resistência a alterações 'retroativas', utiliza-se a hash implícita de todo o histórico anterior em cada commit, sendo possível também a autenticação com assinaturas digitais de desenvolvedores em tags e commits específicos.
Comparado à versão anterior, a nova versão aceita 317 alterações, preparadas com a participação de 58 desenvolvedores, dos quais 13 contribuíram pela primeira vez no desenvolvimento. Principais :
- Foi adicionada a configuração init.defaultBranch, permitindo escolher um nome arbitrário para o ramo principal, que será aplicado por padrão. A configuração foi adicionada para projetos cujos desenvolvedores não se sentem à vontade com a memória da escravidão, e a palavra 'master' é percebida como uma referência ofensiva ou traz sofrimento e um sentimento de culpa não redimida. , e decidiram usar por padrão a palavra 'main' em vez de 'master' para os ramos principais. No Git, como antes, ao executar o comando 'git init', o ramo 'master' ainda é criado por padrão, mas esse nome agora pode ser alterado. Por exemplo, para mudar o nome do ramo inicial para 'main', você pode usar o comando:
git config --global init.defaultBranch main
- Foram adicionadas otimizações de desempenho baseadas na nova estrutura de formato de arquivo commit-graph, utilizada para otimizar o acesso às informações sobre commits, suporte , a uma estrutura probabilística que permite a falsa definição de um elemento ausente, mas exclui a omissão de um elemento existente. A estrutura mencionada permite acelerar significativamente a busca no histórico de alterações ao usar os comandos 'git log -- ' ou 'git blame'.
- Na equipe 'git status', foi proporcionada a saída de informações sobre o progresso da operação de clonagem parcial (sparse-checkout).
- Para os comandos da família 'diff', foi proposta uma nova configuração 'diff.relative'.
- Na verificação através do 'git fsck', agora é avaliada a ordenação da árvore de objetos e identificados elementos não ordenados.
- A interface para editar informações confidenciais na saída da rastreabilidade foi simplificada.
- No cenário de autocompletar entrada, foi adicionada suporte para a adição de opções do comando «git switch».
- No «git diff» foi adicionada suporte para passar argumentos em várias notações («git diff A..B C», «git diff A..B C…D» etc.).
- No comando «git fast-export —anonymize», foi adicionada a capacidade de definir uma mapeamento personalizado de elementos para personalizar a saída, tornando-a mais conveniente para depuração.
- No «git gui», agora é permitido abrir árvores de trabalho a partir do diálogo inicial.
- No protocolo «fetch/clone», foi implementada a capacidade de informar ao cliente pelo servidor a necessidade de baixar arquivos pack preparados previamente, além dos dados de objeto empacotados transmitidos.
- O trabalho de transição para o algoritmo de hash SHA-256 em vez do SHA-1 foi continuado.
Fonte: opennet.ru
