Lançamento do sistema de controle de origem distribuído Git 2.23
Introduzido lançamento de um sistema de controle de origem distribuído Git 2.23.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 resistência a mudanças retroativas, é utilizado hash implícito de todo o histórico anterior em cada commit, sendo também possível certificar tags e commits individuais com assinaturas digitais dos desenvolvedores.
Em comparação com a versão anterior, a nova versão incluiu 505 alterações, preparadas com a participação de 77 desenvolvedores, dos quais 26 participaram do desenvolvimento pela primeira vez. Básico inovações:
Os comandos experimentais "git switch" e "git restore" são introduzidos para separar recursos de "git checkout" fracamente acoplados, como manipulação de ramificação (alternância e criação) e restauração de arquivos no diretório de trabalho ("git checkout $commit - $filename") ou imediatamente na área de teste (“—staging”, não tem análogo em “git checkout”). É importante notar que, diferentemente de "git checkout", "git restore" remove arquivos não rastreados dos diretórios que estão sendo restaurados ("--no-overlay" por padrão).
Adicionada a opção “git merge –quit”, que, semelhante a “-abort”, interrompe o processo de fusão de ramificações, mas deixa o diretório de trabalho intacto. Esta opção pode ser útil se algumas das alterações feitas durante uma mesclagem manual forem preferíveis para serem emitidas como um commit separado.
Os comandos "git clone", "git fetch" e "git push" agora levam em consideração a presença de commits em repositórios vinculados (suplentes);
Adicionado as opções “git culpa —ignore-rev” e “—ignore-revs-file” permitem pular commits que fazem pequenas alterações (por exemplo, correções de formatação);
Adicionada a opção “git cherry-pick —skip” para pular um commit conflitante (um análogo memorizado da sequência “git reset && git cherry-pick —continue”);
Adicionada a configuração status.aheadBehind, que corrige permanentemente a opção “git status -[no-]ahead-behind”;
A partir desta versão, "git log" por padrão leva em consideração as alterações feitas pelo mailmap, semelhante ao que o git shortlog já faz;
A operação de atualização do cache experimental do gráfico de commit (core.commitGraph) introduzida na versão 2.18 foi significativamente acelerada. Também tornou o git for-each-ref mais rápido ao usar vários modelos e reduziu o número de chamadas para auto-gc em “git fetch —multiple”;
"git branch --list" agora sempre mostra HEAD desanexado no início da lista, independentemente da localidade.