Estou tentando alterar meu prompt de comando no terminal. Eu continuo recebendo o erro:
-bash: __git_ps1: command not found
Já fiz apenas digitando-a no terminal como é: __git_ps1
. Eu também tentei no.bash_profile
if [ -f ~/.git-completion.bash ]; then
source ~/.git-completion.bash
export PS1='[\W]$(__git_ps1 "(%s)"): '
fi
Como você pode ver / avisar, sim, eu tenho o preenchimento automático instalado e funciona muito bem!
Me deparei com esta pergunta: "A variável env PS1 não funciona no mac ", que fornece o código
alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'"
Então eu adiciono isso à minha .bash_profile
esperança de que isso mude alguma coisa. Bem, sim. Apenas mudou a saída de erro.
Aqui está o .bash_profile
com a adição:
alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'"
if [ -f ~/.git-completion.bash ]; then
source ~/.git-completion.bash
export PS1='[\W]$(__git_ps1 "(%s)"): '
fi
E agora, aqui está a saída de erro alterada:
sed: (%s): No such file or directory
Nota: Também mudei o alias abaixo da fonte sem diferença. Eu tenho a versão 1.7.12.1 do git
Isso deve ser uma mudança simples. Alguém por favor pode me ajudar?
Editar 13/10/12
Não, eu definitivamente não quero definir __git_ps1, mas estava apenas tentando ver se isso seria reconhecido. Sim, eu tenho o .git-completion.bash
arquivo instalado. Eis como obtive a conclusão automática na minha máquina.
cd ~
curl -OL https://github.com/git/git/raw/master/contrib/completion/git-completion.bash
mv ~/git.completion.bash ~/.git-completion.bash
A ls -la
então lista o .git-completion.bash
arquivo.
Edit 13/10/12 - Resolvido por Mark Longair (abaixo)
O código a seguir funcionou para mim .bash_profile
enquanto outros não ...
if [ -f ~/.git-prompt.sh ]; then
source ~/.git-prompt.sh
export PS1='Geoff[\W]$(__git_ps1 "(%s)"): '
fi
git-completion.bash
define__git_ps1
como uma função shell. O seu? Como você sabe que a conclusão está funcionando? O que acontece quando você digitagit h
<TAB>?git <tab>
conforme observado no commit referido por Mark Longair.Respostas:
Você instalou a versão do
git-completion.bash
frommaster
- no histórico de desenvolvimento do git, após uma confirmação que dividiu a__git_ps1
função da funcionalidade de conclusão em um novo arquivo (git-prompt.sh
). O commit que introduziu essa mudança, que explica a lógica, é af31a456 .Eu ainda sugeriria que você apenas obtivesse a versão do
git-completion.bash
(ougit-prompt.sh
) incluída na sua instalação do git.No entanto, se por algum motivo você ainda quiser usar essa funcionalidade usando scripts baixados separadamente
master
, faça o download dagit-prompt.sh
mesma forma:... e adicione a seguinte linha ao seu
~/.bash_profile
:Então sua
PS1
variável que inclui__git_ps1 '%s'
deve funcionar bem.fonte
git-prompt.sh
egit-completion.bash
são encontrados em`brew --prefix git`/etc/bash_completion.d/
.git-core
foi substituído porgit
, consulte esta perguntaApós a atualização para o OSX 10.9 Mavericks, tive que fazer referência aos seguintes arquivos para obter a conclusão do comando git shell e o prompt do git para trabalhar novamente.
Do meu .bash_profile ou similar:
fonte
~/.git_prompt.sh
. As outras soluções não funcionaram.bash: __docker_machine_ps1: command not found
Você deve
$ brew install bash bash-conclusão git
Em seguida, digite "$ (brew --prefix) / etc / bash_completion" no seu .bashrc.
fonte
A seguir funcionou para mim como um encanto:
Execute o seguinte no seu Terminal:
Abrir / Criar bash_profile:
Adicione o seguinte ao arquivo:
Por fim, obtenha-o usando:
Isso resolverá o problema de
bash: __git_ps1: command not found
.Além disso, seu prompt será alterado para "os". Para alterar "os" para outra coisa, modifique a string "os" na linha PS1 de exportação.
fonte
Solução para MacOS Sierra e git versão 2.10.1 <2017-2-06>
Etapa 1: instalar o Git
Você pode pular esta etapa se você já instalou o último git.
Nota: se você instalar com a
Verificação da instalação:curl [option] https://...
opção de download, precisará garantir que seu sistema suporte SSL. Portanto, para quem está iniciando, baixar do navegador e instalar diretamente do instalador do git é muito mais fácil.which git
git --version
a versão atual deve ser 2.10.1.Etapa 2: adicione seu perfil git ao seu shell
nano ~/.bash_profile
ounano ~/.bashrc
Depende de onde está sua modificação.source /usr/local/git/contrib/completion/git-completion.bash
source /usr/local/git/contrib/completion/git-prompt.sh
Nota: o local de instalação do git mudou de opt / directory para usr / local / após a atualização do OSX para o El Capitain, e é por isso que algumas das respostas antigas acima não funcionam mais no MacOS Sierra.
Adicione o seguinte código à sua configuração PS1:
Opção 1: adicione diretamente ao seu PS1:
Prefiro essa abordagem simples, pois já sei o queexport PS1='\w$(__git_ps1 "(%s)") > '
.git-completion.bash
há no meu diretório pessoal e posso adicionar outro formato de prompt na frente dele. Aqui está o meu prompt pessoal para sua referência:export PS1='\t H#\! \u:\w$(__git_ps1 "{%s}") -->> '
Opção 2: adicionar um script de seleção
Salve e use o perfil:
source ~/.bash_profile
ousource ~/.bashrc
fonte
Eu tive o mesmo problema ao atualizar para o Yosemite.
Eu apenas tive que modificar
~/.bashrc
para emsource /usr/local/etc/bash_completion.d/git-prompt.sh
vez do caminho antigo.em seguida, reencaminhe seu
. ~/.bashrc
para obter o efeito.fonte
Solução limpa High Sierra com cores!
Sem downloads. Sem fermentação. No Xcode
Basta adicioná-lo ao seu ~ / .bashrc ou ~ / .bash_profile
fonte
O __git_ps1 para bash agora é encontrado em git-prompt.sh em /usr/local/etc/bash_completion.d no meu brew instalado git versão 1.8.1.5
fonte
isso funciona no OS 10.8 no .bash_profile
fonte
Para macports, tive que adicionar:
source /opt/local/share/git-core/git-prompt.sh
ao meu ./profilefonte
touch ~/.profile
. Mas você obviamente precisa de um arquivo em: /opt/local/share/git-core/git-prompt.shSe você deseja usar o Homebrew para atualizar o Git e deixar seu sistema desatualizado em geral (como eu fiz), talvez seja necessário atualizar o Homebrew primeiro (como por atualização de preparação) : Os seguintes arquivos da árvore de trabalho não rastreados seriam substituídos por mesclagem: thanks @ chris-frisina)
Primeiro, alinhe o Homebrew com a versão atual
Atualize o Git:
Problema resolvido! ;-)
fonte
Pelo menos com o Xcode 6, você já tem
git-completion.bash
. Está dentro do pacote de aplicativos do Xcode.Basta adicionar isso ao seu .bashrc:
fonte
Adicione o arquivo de origem ao arquivo .bash_profile
fonte
Eu sei que não é uma resposta real ...
Eu tive alguns problemas estranhos com o fornecimento do git-prompt.sh no meu .bashrc, então comecei a procurar outra solução. Este: http://www.jqno.nl/post/2012/04/02/howto-display-the-current-git-branch-in-your-prompt/ não usa __git_ps1 e o autor afirma que também funciona no Mac (por enquanto funciona perfeitamente no meu Ubuntu e é fácil de ajustar).
Espero que ajude!
fonte
Eu estava fazendo o curso sobre o Udacity para hub git e estava tendo esse mesmo problema. Aqui está o meu código final que faz funcionar corretamente.
Funciona! https://i.stack.imgur.com/d0lvb.jpg
fonte
Este funcionou para mim, e tem saída git colorida e um indicador no prompt se os arquivos foram alterados / adicionados, diretamente inseridos nele:
Certifique-se de usar o caminho correto! Eu usei o homebrew para instalar o git, use
brew list git
para obter o caminho para sua instalação atual.Seria bom não usar um caminho codificado, mas não sei como obter o caminho para a instalação atual.
Mais informações aqui: http://en.newinstance.it/2010/05/23/git-autocompletion-and-enhanced-bash-prompt/
fonte
Para git, existem
/Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-prompt.sh
. E por favor, veja/etc/bashrc_Apple_Terminal
também.Então, eu coloquei estes em
~/.bash_profile
:fonte
bash: __docker_machine_ps1: command not found
Prefácio: desculpe por não comentar a resposta da haysclark e fazer uma nova, simplesmente não o suficiente.
Se você não instalou o git através do Xcode ou do home-brew, provavelmente encontrará os scripts bash aos quais haysclarks se refere
/Library/Developer/CommandLineTools/
, e não dentro/Applications/Xcode.app/Contents/Developer/
, tornando assim as linhas a incluir no .bashrc o seguinte:Você precisará dessas linhas se desejar usar o git-prompt também.
fonte