Ao usar o git do OSX, depois de modificar um arquivo, posso simplesmente fazer git commit <tab>
, e isso completará automaticamente o nome do arquivo para aquele que foi modificado. No entanto, se eu instalar uma versão mais recente do git a partir do homebrew e usá-lo, esse recurso não funcionará mais (o que significa que eu pressiono <tab>
e ele apenas me "pergunta" em qual arquivo eu quero fazê-lo, mesmo incluindo os que não apresentam alterações. )
Alguém pode esclarecer o porquê e como resolver isso? Eu preferiria usar o git do homebrew, já que é mais atualizado.
Meu shell é zsh e nem instalou bash-completion
nem zsh-completions
funcionou (mesmo depois de seguir as instruções de pós-instalação do homebrew).
Além disso, depois de instalar o git com homebrew, ele diz
Bash completion has been installed to: /usr/local/etc/bash_completion.d
zsh completion has been installed to: /usr/local/share/zsh/site-functions
Então eu não deveria poder usar um desses?
fonte
zsh
egit
você está usando?git
conclusões funcionam (git co<TAB>
==>git commit
, por exemplo)?zsh-completions
não estava satisfeito com o mac git, embora funcionasse bem antes (possivelmente atualizado às cegas para 0.17.x).Respostas:
Você está procurando:
Como afirma o comentário do warpc, você precisará adicionar o seguinte ao seu
~/.bash_profile
para obter o trabalho de conclusão do basebrew do homebrew:O acima mencionado é mencionado nas advertências quando você instala a fórmula de conclusão do bash.
Nota: se você estiver usando o Bash v4 ou posterior (via
brew install bash
), vai querer usarbrew install bash-completion@2
, para habilitar o preenchimento de guias, adicione o seguinte,~/.bash_profile
conforme descrito nas advertências:A exportação adicional é necessária para git, docker, youtube-dl e outras conclusões que podem estar incluídas no
$(brew --prefix)/etc/bash_completion.d/
diretóriofonte
brew install git zsh-completions
? Além disso, depois de instalar o git com homebrew, dizBash completion has been installed to: /usr/local/etc/bash_completion.d zsh completion has been installed to: /usr/local/share/zsh/site-functions
: então eu não poderia usar um desses?bash-completion
nemzsh-completions
funcionou (mesmo depois de seguir as instruções do homebrew após a instalação).A conclusão da guia git deste get está funcionando no OSX sem a necessidade de reiniciar o seu terminal:
fonte
&&
. Qualquer script bash pode ser uma linha única assim.brew install
método. Simplesmente porque funciona.Caso alguém cometa meu erro estúpido, tente
brew install git
. Eu estava usando ogit
que acompanha o Xcode e não percebi que nunca havia instalado o git do Homebrew para obter os preenchimentos automáticos.fonte
por alguma razão, estava faltando o arquivo na
$(brew --prefix)/etc/bash_completion
resposta correta de @Graham Perks 'não funcionou para mimAcabou que a correção no meu caso foi:
fonte
Resolvi o problema descobrindo que
$(brew --prefix)/etc/bash_completion
retornavaPermission denied
quando executado. Então, depois de um simples:Agora tudo está funcionando bem. Estou me perguntando por que o Homebrew não torna o
bash_completion
arquivo executável na instalação.fonte
bash_completion
deve sersource
usado para que as definições estejam no seu shell; executar não terá efeito.Encontrei uma solução funcional. É muito recente (de autoria de 16 horas atrás e confirmado há 2 horas) e vem diretamente do homebrew .
brew install git --without-completions
Apenas tentei, e finalmente funciona como pretendido.
fonte
git
sem conclusão poderia melhorar a situação da conclusão não funcionando. Acredito que a resposta de Graham Perks, stackoverflow.com/a/14970926/1199564, deva ser sinalizada como a resposta correta.git --without-completions
e buscar obash-completion.bash
arquivo, o.bash_profile
que provavelmente é substituído após o procedimento padrão.brew install git
corrigimos tudo (não é necessário - sem conclusões). Eu acho que essa também é uma resposta correta.Eu tive o mesmo problema e até encontrei este post esta manhã. Corrigi o problema atualizando o brew com
brew update
e reinstalando o git withbrew reinstall git
.Fui então notificado de outro arquivo que está bloqueando o processo de vinculação do homebrew, no meu caso
/usr/local/share/zsh/site-functions/git-completion.bash
. A remoção do arquivo e a execuçãobrew link git
resolveram o problema. Acho que era apenas uma versão ruim da receita que encontramos.fonte
git --version
brew reinstall git
e tambémbrew reinstall bash-completion
para fazê-lo funcionar novamente.Se você tem
$BASH_VERSION
<4.1, por exemplo3.2.57(1)-release
, vá em frente com:No entanto, se você
brew install bash
precisar obter a versão,4.4.12(1)-release
poderá usar as conclusões melhores e mais completas em:Observe que alguns pacotes (brew, docker, tmux) ainda farão algumas conclusões,
$(brew --prefix)/etc/bash_completion.d/
então você pode adicionar:Finalmente, você poderá adicionar o script de conclusão do git se, por algum motivo, a maneira como você instalou o git não o incluiu em nenhum deles:
Você pode obter e adicioná-lo com o acima.
fonte
Etapa 1: faça o download do script de preenchimento automático:
Etapa 2: Atualize .bash_profile e .bashrc
Via https://www.anintegratedworld.com/git-tab-autocomplete-on-osx-10-11-el-capitan/
Se acima não funcionar, tente https://github.com/bobthecow/git-flow-completion/wiki/Install-Bash-git-completion
fonte
Para mim, eu tive que colocar
para
.bashrc
(não .bash_profile) para que isso funcione.".bash_profile é executado para shells de logon, enquanto .bashrc é executado para shells interativos sem logon" - de Qual é a diferença entre .bash_profile e .bashrc? Parece-me que o MacOS Sierra não executa apenas
.bash_profile
ao abrir uma nova janela do terminal.bashrc
.Eu não o colocaria em _bash_profile, porque teria que reiniciar / sair para que as atualizações entrassem em vigor.
fonte
Isso funcionou para mim no Mojave (OSX 10.14.1):
Em seguida, adicione a seguinte linha ao seu ~ / .bash_profile:
fonte
Em 2019, usando o Bash v5, você não precisa fornecer explicitamente o script de conclusão do git bash no seu
.bash_profile
ou.bashrc
.bashrc
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
) e salve-o/usr/local/etc/bash_completion.d/
comogit
É isso aí! O Bash selecionará automaticamente o arquivo de conclusão do git e permitirá a conclusão.
Nota lateral: eu recomendo colocar todas essas alterações,
.bashrc
pois isso garante que, quando você soltar em um shell interativo (por exemplo, depipenv shell
), as conclusões serão carregadas corretamente, pois o bash será fonte.bashrc
e NÃO.bash_profile
.fonte
Pode ter algo a ver com o libedit sendo usado em vez de readline no Lion.
Tente instalar o readline antes do git.
fonte
Para aqueles que já possuem o brew bash-installation instalado. Eu não tinha o script de conclusão do git instalado e não consegui encontrar nenhum toque para isso.
Então eu adicionei manualmente:
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o $(brew --prefix)/etc/bash_completion.d/git
Observe que você precisa renomear o arquivo e remover a extensão para que ele funcione.
Se você não possui a conclusão ou o git instalado, instale-o na resposta aceita.
brew install git bash-completion
fonte
Se você usou o homebrew para instalar o git, provavelmente não há necessidade de instalar nada para dar suporte à conclusão do git. O arquivo "git-conclusão.bash" está em algum lugar (o meu estava aqui: /usr/local/git/contrib/completion/git-completion.bash)
Tudo o que você precisa fazer é encontrar o arquivo: sudo find / -type f -name "git-conclusão.bash"
Em seguida, forneça seu caminho no seu .bash_profile. Por exemplo, eu precisava adicionar esta linha ao meu ~ / .bash_profile:
Não se esqueça de buscar seu ~ / .bash_profile ou reabrir seu terminal;)
from: como ativar o git-tab-conclusão-bash-mac-os-x
fonte
Sei que este é um post antigo, mas você realmente não precisa instalar nenhum pacote adicional.
O Homebrew está informando que existe um diretório com todo o material necessário.
Você pode simplesmente adicionar a seguinte linha ao seu
.bash_profile
se estiver usando o Bash:fonte
Habilitar a conclusão automática de comandos GIT no MAC-OS Mojave 10.14 Sou desenvolvedor e uso o GIT na linha de comando o tempo todo. Quando considero a perspectiva de desenvolvimento, eu costumava executar muitos comandos usando a linha de comando para operações GIT. Na maioria das vezes, é muito irritante que o MAC OS não tenha suporte automático para a conclusão do comando, o qual eu apoio parcialmente. bem como as sugestões de comando, o que significa quais são os comandos disponíveis para caracteres digitados. Portanto, é muito problemático digitar um comando muito longo e, principalmente, tarefas repetitivas, como erro de digitação. :(
A conclusão da guia certamente seria mais rápida e fácil. Infelizmente, a instalação padrão do git em alguns computadores Mac não tem o preenchimento de guias ativado.
Para procurar uma solução para o problema, existem várias soluções encontradas na pesquisa na Web, como StackOverflow, GitHub e também na mídia. Infelizmente, essas soluções não funcionaram para mim e foram frustradas por tentar soluções diferentes tantas vezes.
Eu estava pesquisando profundamente e tentando soluções diferentes e, felizmente, é uma solução fácil. Abaixo estão as etapas que eu coletei de várias postagens e finalmente funcionou como esperado. Então, espero compartilhar com outras pessoas que têm esse problema como eu.
Se você for à pesquisa na web e poderá encontrar muitas soluções que mencionaram o arquivo bash do git conclusão. Até o guia GitHub também. Mas sugiro que você verifique primeiro se o arquivo git-conclusão.bash já está no seu computador MAC com o git-core ou qualquer outra coisa que veio da instalação. você pode usar o comando abaixo.
você vai obter resultados abaixo. (pode haver alguma diferença de acordo com o conteúdo)
Eu sugiro que você escolha qual instalado do git-core
Se o script git-completado.bash não existir na sua máquina, recupere-o a partir do abaixo fornecido acima e salve-o na sua máquina local em um novo arquivo chamado git-completado.bash no / usr / local / etc / diretório bash_completion.d /.
https://git-scm.com/book/en/v1/Git-Basics-Tips-and-Tricks
Se você usa o shell Bash, o Git vem com um bom script de conclusão automática que você pode ativar. Faça o download diretamente do código fonte do Git em
https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
Se o script git-conclusão.bash existe na sua máquina, mas não está no diretório /usr/local/etc/bash_completion.d/, você deve criar esse diretório e copiar o arquivo nele. O comando abaixo fará o trabalho:
Após a conclusão do acima. O script git-conclusão.bash deve existir na sua máquina local no diretório / usr / local / etc / bash_completion.d /.
Agora você precisa atualizar seu perfil usando o comando abaixo. Ele carregará seu arquivo bash adicionado ao contexto do terminal.
Ótimo!!! você fez isso. Basta iniciar a janela do terminal e experimentá-lo. Basta digitar "git sta", ele mostrará sugestões como abaixo:
veja meu post no GitHub aqui:
https://github.com/DIL8654/Enable-Auto-Completion-of-GIT-commads-on-MAC-OS-Mojave
Veja meu post Médio aqui:
https://medium.com/@dilanka85/enable-auto-completion-of-git-commands-on-mac-os-mojave-10-14
fonte