O que você precisa saber sobre o novo Git 1.8.3

Nicola Paolucci
Nicola Paolucci
Voltar para a lista

Seja usando o git na linha de comando ou por meio de uma ferramenta que você escolha, como o Sourcetree; seja hospedando seu código no Bitbucket Cloud ou no Stash (agora chamado de Bitbucket Server) junto ao firewall da sua empresa, se você for como eu, hehe, é sempre uma festa quando uma nova versão do git é lançada.

Caminho de upgrade suave para Gitters

A nova versão do git 1.8.3 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 (devido a um bug de última hora descoberto na análise do .gitignore no OSX, o Homebrew não distribuiu o upgrade ainda).
  • Use um truque mágico de apt se estiver em distribuições baseadas no Ubuntu (deixo outras distribuições como um exercício para o leitor).
  • Basta executar o novo instalador se estiver no Windows (a porta do Windows às vezes fica um pouco atrasada, portanto, seja paciente se não conseguir encontrá-la de imediato).

Para notas anteriores sobre o git 1.8.2, consulte aqui.

Então, o que há de novo nesta versão?

Como de costume, muitos foram corrigidos, parece-me que essa é muito mais do que o ciclo anterior. Sem mais delongas, deixe-me mostrar algumas coisas que me chamaram a atenção.

Cores, cores e mais primor para todos

O refinamento da interface do usuário da linha de comando continua com algumas atualizações:

  • Durante uma sessão git rebase, o gerador de string de prompt (em contrib/completion/) vai mostrar quantas mudanças existem no total e quantas foram repetidas.

  • git branch -v -v agora pode pintar o nome do branch com o qual ele se integra em uma cor diferente (color.branch.upstream, padrão para azul):

npaolucci:~/dev/projects/stash] main ± git branch -v -v
  1.3           3a7ec9d [origin/1.3] Merge pull request #765 from STASH-2808-...
  gmail-renders 128fe79 [origin/gmail-renders] made pattern DOT_IN_WORD...
* main        66865b0 [origin/main] Automatic merge from 2.4 -> main
  • git log --format agora exibe um token %C(auto) que diz ao Git para usar cor ao resolver %d (decoração), %h (nome curto do objeto de commit), etc. para a saída do terminal.

  • git count-objects ganhou uma opção --human-readable e -H para mostrar vários números grandes em Ki/mi/GiB com escalabilidade conforme necessário:

[npaolucci:~/dev/projects/stash] main ± git count-objects -H
169 objects, 680.00 KiB

O item de ajuda mostra a lista de guias

git help -g é uma nova marcação que vai listar as guias disponíveis, assim como a lista de comandos é mostrada com -a:

[npaolucci:~/dev/projects/stash] main ± git help -g
The common Git guides are:

  attributes   Defining attributes per path
  glossary     A Git glossary
  ignore       Specifies intentionally untracked files to ignore
  modules      Defining submodule properties
  revisions    Specifying revisions and ranges for Git
  tutorial     A tutorial introduction to Git (for version 1.5.1 or newer)
  workflows    An overview of recommended workflows with Git

'git help -a' and 'git help -g' lists available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.

Melhor suporte de fluxo de trabalho "triangular"

O git agora aceita um fluxo de trabalho "triangular" para situações em que seu processo padrão é sempre extrair de um lugar e sempre enviar para outro. Para trabalhar assim, agora você pode substituir a origem da variável de configuração por um novo remote.pushdefault e substituir o branch.❊.remote com o branch.❊.pushremote.

Status melhorado para reversões, rebases e bissecções

O git status foi aprimorado para relatar quando você está no meio de uma sessão de revert, cherry-pick ou bisect.

Cancelar o rastreamento dos submódulos, finalmente!

Se você leu meu artigo anterior sobre o submódulo git, viu que operações um tanto simples não eram suportadas muito bem pela interface de linha de comando do submódulo. Bem, há boas notícias!

Agora você pode dizer "Não me interesso mais por este submódulo" com o git submodule deinit.

Outras coisas boas que vale a pena mencionar

  • A nova opção --follow-tags diz ao git push para enviar tags anotadas relevantes ao enviar branches.

  • Não havia uma boa maneira de perguntar "Eu tenho uma sequência aleatória que veio de fora. Eu quero transformá-la em um nome de objeto hexadecimal de 40 enquanto me certifico de que esse objeto exista". Um novo sufixo de peeling ^{object} pode ser usado para esse propósito, junto com o rev-parse --verify.

Conclusões

Era o que eu tinha para compartilhar por enquanto. Aproveite as dicas e me avise se há itens dignos de serem vistos que perdi na longa lista de atualizações.

Siga-me em @durdn e a incrível equipe @AtlDevtools para mais DVCS.

Pronto(a) para aprender Git?

Tente este tutorial interativo.

Comece agora mesmo