É difícil acreditar que sobrevivi tanto tempo com Git no shell sem configurar recursos de preenchimento automático no Mac OS X. Mas foi o que aconteceu!
Por fim, fiquei irritado com alguns nomes remotos longos e alguns nomes de ramos longos, a tal ponto que me deram o empurrão certo.
Eu tenho um PC antigo, com Snow Leopard e MacPorts .
Com base neste artigo em superuser.com , parecia muito simples de fazer:
sudo port selfupdate
sudo port install git-core +bash_completion
Você deve prestar atenção à saída desses comandos.
Em algum lugar no meio da etapa de instalação mencionou que os recursos de conclusão só funcionarão na versão Bash> = 4.1.
Verificando o que tenho em mãos:
$ echo $BASH_VERSION
3.2.48(1)-release
$ echo $SHELL
/bin/bash
$ which bash
/opt/local/bin/bash
$ bash --version
GNU bash, version 4.2.45(2)-release (i386-apple-darwin10.8.0)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Portanto, meu shell atual é a /bin/bash
versão 3.2,
mas já existe uma versão 4.2 em meu sistema em /opt/local/bin/bash
.
Vamos mudar minha concha:
$ chsh -s /opt/local/bin/bash
Changing shell for janos.
Password for janos:
chsh: /opt/local/bin/bash: non-standard shell
Não funcionou, aparentemente porque o shell que especifiquei “não é padrão”.
De acordo com a página do manual de chsh
,
shells padrão são aqueles listados em /etc/shells
.
Este Bash 4 foi instalado por MacPorts,
e eu o considero um shell padrão,
então vamos adicioná-lo à lista:
echo /opt/local/bin/bash | sudo tee -a /etc/shells
Depois disso, eu poderia mudar meu shell
e , em uma nova janela de terminal ou guia, começar a aproveitar o preenchimento automático nos comandos do Git, sim!
Mais importante ainda em operações com controles remotos e filiais.