Na minha máquina Linux, tenho preenchimento automático para ramificações com o Git.
[Observe que estamos falando sobre a conclusão do ramo git, não sobre o bash (por exemplo, comandos, arquivos, etc.). Portanto, NÃO a resposta de Lane ]
Por exemplo, eu posso digitar git checkout
+ TABe obter uma lista de ramificações.
Ou posso digitar git checkout feb*
+ TABpara obter todos os ramos que começam com "feb".
Como posso obter essa funcionalidade em um Mac?
Eu tentei baixar e executar bash-completion/bash_completion
e bash-completion/bash_completion.sh.in
, mas nenhuma alegria. O primeiro deu mensagens de erro sobre declare: -A invalid_option
. O segundo não deu erros. Quando eu git checkout
+ TABainda estou recebendo uma lista de arquivos no diretório, não ramos. Eu estou na raiz do projeto.
O preenchimento automático de diretórios e comandos bash está funcionando bem, por isso é específico do Git.
fonte
Models
pasta quando eu batiam
Tab
para torná-lo preenchido automaticamentemaster
.source ~/.bash_profile
depois de colar o código. Reiniciar o terminal também fará a mesma coisa.git
, mas padrão da Applegit
)brew install git
e reiniciar o terminal para aqueles que estão enfrentando erro estranho comogit checunknown option: --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config usage: git [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p | --paginate | --no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] <command> [<args>]
Algumas pessoas preferem usar um gerenciador de pacotes para automatizar a instalação, atualização e configuração de pacotes do Mac OS. Sou fã de gerenciadores de pacotes e acho que o Homebrew é o melhor gerenciador de pacotes para o Mac OS (alguns diriam que é o gerenciador de pacotes de fato do Mac OS).
Depois de instalar o Homebrew, você pode simplesmente instalar o git juntamente com o bash-complete com
brew install git bash-completion
.Você precisará colocar o seguinte no seu
~/.bash_profile
:(Nota: Se esta instalação falhar com um erro 404 e você já tiver o git instalado, remova a parte git desta instalação de preparação)
Mais informações sobre a instalação do git e da conclusão do bash com o brew aqui.
fonte
git
e adicionarbash-completion
não é o mesmo que adicionar..git-completion.bash
Eles são programas diferentes e fazem coisas bem diferentes - um faz bash no autocompletar comando e o outro git comanda o autocompletar e 'nair the twain will meet;)~/.bash_profile
?Execute isso no terminal:
Então, faça o seguinte:
Adicione estas linhas:
Isso é tudo. Isso funcionou para mim.
fonte
~/.bash_profile
arquivo não existe. Tudo bem, basta criar o arquivo e colocar oif
script lá e salvar. Recarregue seu shell depois e ele funcionará.git
egit-completion.bash
já vem com as ferramentas de linha de comando do macOS (xcode-select --install
). Para ativar o preenchimento automático do bash, adicione isso ao seu~/.bash_profile
.Isso também permitirá o preenchimento automático para ramificações git.
fonte
Aqui está o que está confundindo alguns de vocês: você tem o brew ou as portas instaladas, mas está usando um sistema no git
/usr/bin/
. Para verificar isso:Se você vir
/usr/bin/git
, o brew não está configurado corretamente ou você não instalou o git via brew.Se você instalar o git por meio do brew, ativar a conclusão do bash para o brew também habilitará as conclusões do bash para o git. Isso ocorre porque,
/usr/local/etc/bash_completion
na verdade, tudo origina tudo/usr/local/bash_completion.d
, e o pacote brew para o git instala um script de conclusão do git lá.fonte
Você pode instalar o bash e o git do MacPorts com a opção "bash_completion" ativada. É provavelmente a maneira mais fácil de manter atualizados o git e as conclusões.
http://denis.tumblr.com/post/71390665/adding-bash-completion-for-git-on-mac-os-x-snow-leopard
Para instalar o MacPorts: http://www.macports.org/install.php/
informação adicional
Quanto à localização das configurações de conclusão no seu sistema Linux, consulte /etc/bash_completion.d/git (é um arquivo longo). Porém, copiar isso por si só provavelmente não funcionará, pois foi projetado para ser originado pela estrutura de conclusão por meio de / etc / bash_completion (que é proveniente de /etc/profile.d/bash_completion.sh; arquivos em / etc / profile .d são originários de / etc / profile).
fonte
Se a conclusão do seu git estiver parcialmente interrompida, mesmo após a fonte
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
, talvez seja necessário atualizar sua versão do git.Por exemplo, quando eu digitava
git check
+TAB
, o preenchimento automático era corretogit checkout
. Mas quando eu digiteigit checkout
+TAB
, ele não exibia apenas a lista de ramificaçõesHEAD
.A correção para mim foi atualizar minha
git
versão. Eu estava no 2.7.0, o que aparentemente não era compatível com o mais recentegit-completion.bash
. Eu executeibrew upgrade git
, que o atualizou para a versão 2.13.0, e agora preenche corretamente meus nomes de ramificações.fonte
brew upgrade git
ebrew link git
(com substituição ativada)update
paraupgrade
.De longe, a melhor referência que encontrei para resolver esse problema está no SpinDance , de Connor Livingston :
fonte
Tentei e funciona bem para ramos, mas quando você faz
git st
+tab
, ele mostra o erro como esteProcurei na internet e descobriu que
--list-cmds
na.git-completion.bash
era em versão mais recente do git e no meu mac a versão git foi2.17.2
Aqui estão as soluções
Solução 1
git --version
comandoEm seguida, coloque o mesmo número de versão no URL que eu fiz
Siga as mesmas etapas da resposta superior, insira o código abaixo em
~/.bash_profile
Solução 2
Você deve tentar atualizar a versão git para a mais recente, e deve funcionar.
fonte
Instale oh-my-zsh e defina zsh como seu shell padrão e agradeça-me mais tarde :)
fonte
A maioria dos usuários terá
git
instalado como parte das ferramentas de linha de comando xcode em/usr/bin/git
e as regras de conclusão do bash para o git estarão disponíveis em/Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash
.Nesse caso, não há necessidade de instalar o git do Homebrew ou as regras de conclusão do git de origem em raw.githubusercontent.com. Basta criar um link simbólico da seguinte maneira:
Nota: verifique se você instalou e configurou o
bash-completion
pacote do Homebrew.fonte
Localize o seu
.bashrc
arquivo.Abra-o e adicione esta linha na parte inferior:
source /etc/bash_completion.d/git
fonte
/etc/bash_completion.d/
pasta, em um sistema relativamente novo (OSX 10.10.3)./etc/bash_completion.d/git
? Isso tornaria sua resposta mais valiosa.