O OS X (ou Xcode) vem com o git 1.7.something, mas depois do brew install git
(1.8.0), which git
continua retornando o antigo /usr/bin/git
.
É isso que recebo quando ecoo $ 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
O material Homebrew não deveria ter precedência?
Além disso, não tenho ideia de onde isso usr/local/git/bin
vem no final.
ls /usr/local/bin
mostragit
está lá. O Brew também confirma que está instalado. Eu até executei o desinstalador do git (brew uninstall
usando e usando o que acompanha o download oficial do git) e refizbrew install git
. Eu continuo recebendowhich git = = /usr/bin/git"
.which -a git
para ver se está encontrando.Respostas:
Entendi. A resposta está na sua pergunta; O brew instala o git para
/usr/local/git/bin
(não/usr/local/bin
), mas, como isso é seguido/usr/bin
no seu caminho, você obtém esse primeiro. Meu comentário parawhich -a git
deveria ter apontado você nessa direção.fonte
ls -l /usr/local/bin/git
também. Aposto que é um link simbólico para/usr/bin/git
./usr/local/git/bin
parece ser onde o instalador oficial o coloca também./etc/paths
e/etc/paths.d
também.which -a git
retornos/usr/local/bin/git; /usr/bin/git; /usr/local/bin/git
. Então, renomeei o velho gitusr/bin/git_old
e o tirei do caminho. Agoragit --version
retorna 1.8, provando que o brew instalou o git com sucesso. - Mais uma vez, renomei/usr/bin/git
o nome original ... e de repente está funcionando corretamente! Não sei por que nem como, mas renomear/usr/bin/git
e executar o git uma vez parece ter resolvido o problema. Quem sabe qual era a raiz do problema. Obrigado de qualquer maneira :)Eu também encontrei esse problema.
Depois de instalar o git através do homebrew, se você executar
brew doctor
, ele avisará que, como Joe mencionou acima, o sistema está executando o antigo git porque seu local de instalação é o primeiro.Mas, no mesmo aviso, o homebrew fornece o código para corrigi-lo:
fonte
Faz parte dos meus hábitos no Unix ter um
~/bin
diretório que eu coloquei no início do meuPATH
. Este é um dos primeiros bits no meu.bashrc
:Com isso em prática, fazer seletivamente apenas o gerenciado pelo Homebrew
git
ter precedência sobre a versão do sistema (em vez de todos os binários gerenciados pelo Homebrew) e apenas as sessões do shell (em vez de todos os programas iniciados de qualquer lugar, incluindo programas da GUI), é tão simples quanto simbolizando:fonte