Como fazer com que o git-completion.bash funcione no Mac OS X?

Como fazer com que o git-completion.bash funcione no Mac OS X?

eu tenho seguidohttp://blog.bitfluent.com/post/27983389/git-utilities-you-cant-live-withoutpara adicionar git-completion.bashao meu/opt/local/etc/bash_completion.d/git-completion

e coloquei PS1='\h:\W$(__git_ps1 "(%s)") \u\$ 'meu .bashrc_profile

Mas agora estou entendendo -bash: __git_ps1: command not foundtudo o que faço cd.

Você pode me dizer o que estou perdendo?

Responder1

Eu instalei o git usandoMacPortsna minha nova instalação do Snow Leopard. Depois que o MacPorts for instalado a partir da imagem .dmg, estes seriam os comandos no Terminal.app:

sudo port selfupdate
sudo port install git-core +bash_completion

Se você também deseja suporte para extração de repositórios e documentos SVN, use isto em vez da segunda linha:

sudo port install git-core +bash_completion +doc +svn

Em seguida, adicione o seguinte ao seu ~/.profile ou ~/.bash_profile:

# Conclusão do comando do shell MacPorts Bash
se [ -f /opt/local/etc/bash_completion ]; então
    . /opt/local/etc/bash_completion
fi

ou para MacPorts desde a versão 2.1.2 no Mountain Lion:

# Conclusão do comando do shell MacPorts Bash
se [ -f /opt/local/etc/profile.d/bash_completion.sh ]; então
  . /opt/local/etc/profile.d/bash_completion.sh
fi

ou para MacPorts com versões mais recentes do git:

se [ -f /opt/local/share/git-core/git-prompt.sh ]; então
    . /opt/local/share/git-core/git-prompt.sh
fi

Nota: bash 4.1 ou superior é exigido por bash_completion.sh. Se a conclusão não funcionar, tente echo $BASH_VERSIONver se esse é o problema. Nesse caso, entre no MacPorts bash digitando bashe tente completar git novamente.

Responder2

Se você instalou o git usando o homebrew, você pode ajustar um pouco o conselho do MacPorts e adicioná-lo ao seu .bash_profilee.bashrc

if [ -f `brew --prefix`/etc/bash_completion.d/git-completion.bash ]; then
. `brew --prefix`/etc/bash_completion.d/git-completion.bash
fi

A melhor maneira de verificar se você instalou o git corretamente usando o homebrew é executar

brew info git

e verifique a saída do diretório de instalação da conclusão do git bash

A versão mais recente do Git (1.7.12) também requer o seguinte para ativar o prompt.

if [ -f `brew --prefix`/etc/bash_completion.d/git-prompt.sh ]; then
    . `brew --prefix`/etc/bash_completion.d/git-prompt.sh
fi

Responder3

Tudo o que você precisa fazer é colocar o git-completion.basharquivo no bindiretório inicial do usuário e colocar o seguinte em você .profileou .bash_profileno arquivo:

export PATH="$HOME/bin:$PATH"
source ~/bin/git-completion.bash
PS1='[\u@\h \w$(__git_ps1 " (%s)")]\$ '

O que isso faz é garantir que seu bin local esteja no PATH e que o sourcecomando faça as coisas funcionarem. Então, é claro, a alteração do PS1 coloca o branch atualmente em check-out no prompt.

Portanto, não instale o MacPort para instalar a versão "completa" do GIT (especialmente irritante se você já o tiver instalado).

Responder4

Você precisa obter as funções de conclusão de comando. Adicione ao seu .bashrc_profile antes do PS1:

. /opt/local/etc/bash_completion.d/git-completion

informação relacionada