Lançamento do sistema de controle de origem distribuído Git 2.27
Disponível lançamento de um sistema de controle de origem distribuído Git 2.27.0. Git é um dos sistemas de controle de versão mais populares, confiáveis e de alto desempenho, fornecendo ferramentas flexíveis de desenvolvimento não linear baseadas em ramificação e fusão. Para garantir a integridade do histórico e a resistência a mudanças retroativas, é utilizado hash implícito de todo o histórico anterior em cada commit; também é possível certificar tags individuais e commits com assinaturas digitais dos desenvolvedores.
Em comparação com a versão anterior, a nova versão incluiu 537 alterações, preparadas com a participação de 71 desenvolvedores, dos quais 19 participaram do desenvolvimento pela primeira vez. Básico inovações:
A ativação padrão implementada na versão anterior foi revertida segunda versão Protocolo de comunicação Git, usado quando um cliente se conecta remotamente a um servidor Git. O protocolo é considerado ainda não pronto para uso por padrão devido à identificação de problemas escorregadios que requerem consideração separada.
Adicionado um conjunto de opções para configurar uma conexão SSL ao acessar por meio de um proxy.
As informações exibidas ao usar os filtros de transformação “limpar” e “manchar” foram expandidas. Por exemplo, o objeto agora é mostrado arvore, no qual aparece o blob a ser convertido.
Para evitar confusão, o comando "git description" agora sempre usa o modo de saída estendido ("--long") se uma tag substituída associada a um commit for identificada (anteriormente, uma tag assinada ou anotada descrevendo um commit era gerada mesmo que fosse renomeado ou movido na hierarquia “refs/tags/”, e o comando “git show tag^0” não funcionou como esperado - “refs/tags/tag” não foi encontrado ou até mesmo uma tag diferente foi retornada).
Ao executar "git pull", um aviso é emitido agora, a menos que a variável de configuração pull.rebase seja explicitamente definida e as opções "--[no-]rebase" ou "--ff-only" não sejam usadas. Para suprimir o aviso para quem não pretende realizar uma operação de rebase, a variável pode ser definida como falsa.
As opções “git pull” comuns ao “git fetch” foram revisadas. Opções semelhantes não mencionadas anteriormente são documentadas e as opções ausentes são passadas para git fetch.
Adicionada a opção "--no-gpg-sign" ao comando "git rebase" para substituir a configuração "commit.gpgSign".
Adicionada a capacidade de "git format-patch" para exibir os cabeçalhos "From:" e "Assunto:" inalterados, sem converter caracteres não ASCII.
A opção “-show-pulls” foi adicionada ao “git log”, permitindo visualizar não apenas os commits nos quais as alterações foram feitas, mas também o commit para mesclar essas alterações de um branch separado.
Manipulação de entrada interativa unificada em todos os componentes e adição de uma chamada para fflush() após o prompt de entrada ser mostrado, mas antes da operação de leitura.
"git rebase" permite reaplicar todos os commits locais sem primeiro realizar uma operação de "checkout", mesmo que alguns deles tenham sido previamente upstreamados.
A variável de configuração 'pack.useSparse' foi alterada para 'true' para permitir otimizações anteriormente consideradas experimentais por padrão.
Adicionada opção "--autostash" ao "git merge".
Interface de "checkout esparso" aprimorada.
Várias novas ações foram adicionadas ao "git update-ref --stdin",
permitindo o controle direto de transações de atualização de link, por exemplo, para implementar atualizações de link atômico em dois estágios em vários repositórios.
Adicionados modelos userdiff para documentos Markdown.
Removida a restrição para excluir todos os caminhos em modelos de checkout esparsos que resultam em uma árvore de trabalho vazia.
A operação "git restore --staged --worktree" agora usa como padrão o conteúdo do branch "HEAD" em vez de gerar um erro.
O trabalho continuou na transição para o algoritmo de hash SHA-2 em vez de SHA-1.
O código para interagir com o GnuPG foi reformulado.