OS X (ou Xcode) vem com o git 1.7.something, mas depois brew install git
(1.8.0), which git
continua retornando o antigo /usr/bin/git
.
Isto é o que recebo quando faço eco de $PATH agora:
/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin
As coisas do Homebrew não deveriam ter precedência?
Além disso, não tenho ideia de onde isso usr/local/git/bin
vem no final.
Responder1
Entendi. A resposta está na sua pergunta; brew instala o git em /usr/local/git/bin
(não /usr/local/bin
), mas como isso acontece /usr/bin
no seu caminho, você o obtém primeiro. Meu comentário which -a git
deveria ter apontado você nessa direção.
Responder2
Eu também encontrei esse problema.
Depois de instalar o git através do homebrew, se você executar brew doctor
ele irá avisar que, como Joe mencionou acima, o sistema está rodando o git antigo porque seu local de instalação vem primeiro.
Mas, no mesmo aviso, o homebrew fornece o código para consertar:
$ echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile
Responder3
Faz parte dos meus hábitos Unix ter um ~/bin
diretório que coloco no início do meu arquivo PATH
. Este é um dos primeiros bits do meu .bashrc
:
case ":$PATH:" in
*:$HOME/bin:*) ;; # do nothing if $PATH already contains $HOME/bin
*) PATH=$HOME/bin:$PATH ;; # in every other case, add it to the front
esac
Com isso em vigor, fazer com que apenas o gerenciado pelo Homebrew git
tenha precedência sobre a versão do sistema (em vez detodoBinário gerenciado pelo Homebrew) e apenas para suas sessões de shell (em vez detodosprogramas iniciados de qualquer lugar, incluindo programas GUI), é tão simples quanto criar um link simbólico:
ln -s /usr/local/bin/git ~/bin/git