
Olá,% username%, hoje, uma ótima notícia: no domínio público apareceu o lançamento do sistema de controle distribuído versão 2.29.0 do Git . Provavelmente, no Habré não vale a pena dizer o que é, pois o Git ainda é um dos melhores sistemas.
A nova versão contém 627 alterações de uma vez, que foram feitas por 89 desenvolvedores. Vamos falar sobre as principais mudanças e melhorias no corte.
- SHA-256 SHA-1 . Git . . , SHA-1 , Git . SHA3-256, SHA2-256, SHA2 Git . , , . , , - — .
- Agora o Git adicionou a capacidade de incluir um novo formato de objeto ao criar um repositório:
$ git init --object-format=sha256 repo
Initialized empty Git repository in /home/ttaylorr/repo/.git/
$ cd repo
$ echo 'Hello, SHA-256!' >README.md
$ git add README.md
$ git commit -m "README.md: initial commit"
[master (root-commit) 6e92961] README.md: initial commit
1 file changed, 1 insertion(+)
create mode 100644 README.md
$ git rev-parse HEAD
6e929619da9d82c78dd854dfe237c61cbad9e95148c1849b1f96ada5ee800810
Você só pode escolher entre SHA-1 e SHA-256, não há possibilidade de combinar diferentes hashes em um repositório.
- Os comandos git fetch e git push agora oferecem suporte a especificações de link excludentes que estendem as regras para links correspondentes entre branches em repositórios locais e externos. Este recurso será útil em situações em que você precisa não apenas selecionar, mas também excluir algumas ramificações do mapeamento. Então, quando você precisar verificar todos os branches "refs / heads / *", exceto um "refs / heads / ref-to-exclude", antes você teve que especificar a lista completa usando este script:
$ git ls-remote origin 'refs/heads/*' |
grep -v ref-to-exclude |
awk '{ print $2:$2 }' |
xargs git fetch origin
- Agora existe um operador de exceção "^". As expressões com este operador aceitam modelos, mas não podem se referir a identificadores de objeto. Um comando usando o novo operador pode ter a seguinte aparência:
$ git fetch origin 'refs/heads/*:refs/heads/*' ^refs/heads/ref-to-exclude
Além disso, você pode usar exclusões nas configurações:
$ git config --add remote.origin.fetch ^refs/heads/foo
- O "git shortlog" agora tem a capacidade de agrupar commits pelo conteúdo de campos adicionais, "Revisado por:" e "Coautorizado por:", não apenas pelo autor ou autor do commit. Portanto, se você precisa exibir uma lista dos desenvolvedores que revisam mais ativamente, precisa de um comando:
$ git shortlog -ns --group=trailer:reviewed-by v2.28.0.. | head -n5
40 Eric Sunshine
10 Taylor Blau
4 brian m. carlson
2 Elijah Newren
1 Jeff King
- Várias instruções --group podem ser especificadas na inicialização e usar a opção --format. Portanto, para acompanhar os co-autores ou colaboradores, agora você precisa especificar o seguinte:
$ git shortlog -ns --group=author --group=trailer:co-authored-by
$ git shortlog --format="...helped %an on %as" --group=trailer:helped-by v2.28.0..v2.29.0
- Se ocorrer um conflito durante uma operação git merge, o cabeçalho da mensagem de confirmação agora é colocado entre colchetes para separar explicitamente os dados da confirmação das mensagens de diagnóstico do Git.
- Os desenvolvedores trouxeram de volta a segunda versão do protocolo de comunicação Git, que foi desabilitada na versão 2.27. Assim, um bug que levava a problemas de estabilidade foi corrigido.
- A opção "--first-parent" foi adicionada ao comando git bisect, que é usado para detectar uma revisão, para mudar a seleção de commits entre a revisão de trabalho conhecida e a revisão na qual o problema ocorreu.
Você pode ver todas as inovações aqui .
