O que você precisa saber sobre o novo lançamento, o Git 1.8.2

Nicola Paolucci
Nicola Paolucci
Voltar para a lista

Adoro vasculhar as notas de lançamento das minhas ferramentas favoritas em busca de preciosidades escondidas (ou não tão escondidas). É um pouco como o Natal. Eu tenho aquela sensação agradável de expectativa e curiosidade quando são lançadas novas versões do meu fiel gerenciador de janelas de código aberto OSX Slate, no Rails, no Django, no CoffeeScript e, claro, no Git e muitos outros.

Fazendo upgrade, fazendo upgrade, fazendo upgrade

A nova versão do git 1.8.2 foi lançada. Então é natural fazer o upgrade para a versão mais recente. Deve ser relativamente fácil:

  • Basta digitar brew update&& brew upgrade git se você usar o Homebrew no OSX.
  • Use um truque de apt mágico se estiver em distribuições baseadas no Ubuntu (eu deixo outras distribuições como um exercício para o leitor).
  • Basta executar o novo instalador se estiver no Windows.

Então, o que há de novo no Git 1.8.2?

Como sempre, muita coisa foi consertada. Algumas coisas específicas chamaram meu interesse nesta última versão.

Comportamento simplificado para adicionar -u e -A

git add -u é a marcação usada para dizer ao Git para também preparar exclusões ao adicionar coisas do diretório atual ao índice.

E git add -A é usado para adicionar tudo e preparar exclusões a partir do diretório atual. Costumava ser equivalente a:

git add.; git add -u

Esse comportamento foi alterado e as marcações -u/-A vão funcionar em toda a árvore de origem para tornar o comportamento consistente com a git commit -a e outros que já funcionam dessa maneira. Esta é uma alteração incompatível com versões anteriores, embora seja esperado que tenha um impacto leve.

Padrão **/ útil para usar em .gitignore

O amado arquivo .gitignore ganha um novo padrão **/ legal que corresponde a zero ou mais níveis de um subdiretório: por exemplo, "foo/**/bar" corresponde a "bar" no próprio "foo" ou em um subdiretório de "foo".

Além disso, o Git agora exibe um comando check-ignore que pode ser usado para depurar as configurações do .gitignore. Por exemplo:

[4967] λ # git check-ignore --verbose dist/ .gitignore:1: dist dist/

Script de conclusão aprimorado

Se você usa a linha de comando e configurou o preenchimento automático do git shell, deve ter notado como é útil. Nesta versão, o script de conclusão foi aprimorado para ser inteligente sobre quais arquivos mostrar quando você git add, descartando os não relevantes, como caminhos não modificados.

Aliases coloridos e interações de script

Eu uso comandos de log muito coloridos, como mostrei na minha publicação de alias há um tempo. Esta versão traz um bom ajuste que desabilita com automação as cores quando a saída não é usada para um terminal, muito útil ao usar comandos do Git em scripts.

Como se usa esse recurso? Basta usar o prefixo auto no especificador de cores como:

%C(auto,blue)Hello%C(auto,reset)

O gráfico de ascendência no registro do git agora funciona com a saída de comparação combinada

A saída --graph do registro do git costumava ser difícil se você adicionasse o -p para mostrar a saída de comparação combinada. Agora funciona conforme o esperado:

git log -p --cc --graph

Melhor status de sincronização entre ramificações locais e remotas

Na verdade, esse recurso é da versão 1.8.1, mas legal mesmo assim:

Quando o "git checkout" faz checkout de uma ramificação, ele informa ao usuário o quanto a nova ramificação está atrasada (ou à frente) em relação a ramificação de rastreamento remoto na qual ele se baseia. A mensagem agora também informa como sincronizar as ramificações por pull ou push. Essa opção pode ser desabilitada com a variável de configuração advice.statusHints.

Conclusão

Por enquanto, é só. Aproveite os agrados e conte para mim o que você achou no Twitter @AtlDevTools.

Pronto(a) para aprender Git?

Tente este tutorial interativo.

Comece agora mesmo