Não é possível usar o git instalado homebrew

16

Estou com um problema muito estranho quando tento usar a versão mais recente do git que acabei de instalar via homebrew. which gitestá me apontando para a instalação do homebrew, mas a chamada gitretorna a versão original instalada com o OS X.

Verifiquei primeiro a versão original em que estava.

[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)

Depois fui para o homebrew para instalar a versão mais recente.

[user@home ~]$ brew install git
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/git-2.0.0.mavericks.bottle.2.tar.gz
######################################################################## 100.0%
==> Pouring git-2.0.0.mavericks.bottle.2.tar.gz
==> Caveats
The OS X keychain credential helper has been installed to:
  /usr/local/bin/git-credential-osxkeychain

The 'contrib' directory has been installed to:
  /usr/local/share/git-core/contrib

Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh completion has been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
🍺  /usr/local/Cellar/git/2.0.0: 1324 files, 31M

Parece que funcionou! Verifique se está apontando para o git correto

[user@home ~]$ which git
/usr/local/bin/git

Deve ser bom, certo? Não tão rápido

[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)

Isso é estranho. Estou realmente apontando para o idiota certo?

[user@home ~]$ ls -l /usr/local/bin/git
lrwxr-xr-x  1 user  group  27 Jul  3 15:54 /usr/local/bin/git -> ../Cellar/git/2.0.0/bin/git

Claro que parece. Funciona quando eu chamo manualmente

[user@home ~]$ /usr/local/Cellar/git/2.0.0/bin/git --version
git version 2.0.0

Mas não tão git

[user@home ~]$ which git
/usr/local/bin/git
[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)

Alguma idéia do que poderia estar causando isso?

EDIT: Resolvido. source .bashrcconsertou. Ainda curioso para whichsaber por que me devolveria o executável correto, mas não seria chamado, se alguém puder explicar isso.

Matt Stone
fonte
Não sei exatamente qual é o problema, mas parece que você pode querer dar uma olhada no valor atual de $PATH.
Zev Eisenberg
3
Se você quiser ver todas as versões do git que você instalou, use -> what -a git - (qual git, apenas retornará o caminho do primeiro encontrado na sua variável PATH) para ver quais caminhos você possui no PATH. -> echo $ PATH
konqui

Respostas:

25

Os shells mantêm um cache dos caminhos em que os executáveis ​​foram encontrados na $PATHvariável. Portanto, ele armazenou /usr/bin/gitem cache, e não /usr/local/bin/gitporque o último não existia quando o shell foi iniciado. A execução hash -rno Bash a partir do seu terminal atual limpará esse cache; a primeira instância encontrada em $PATHdeve ser a que é executada.

realgeek
fonte
hash -rtrabalhou para mim
Metal Gear Solid
5

Eu tenho exatamente o mesmo problema. Aqui está a minha solução.

brew uninstall git
# make sure everything is alright, maybe brew will give you some hint
brew doctor
brew update  
brew install git
# magic happen, brew will give you hint /usr/bin occurs before /usr/local/bin
# and recommend you run following command
brew doctor
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile

Depois disso, você não poderá ver nenhuma alteração ao executar git --version. Basta sair e fazer login novamente, execute git --versionnovamente.

Fang
fonte
7
Abrir uma nova janela do Terminal é suficiente. Como alternativa, pode-se também ligar source ~/.bash_profile.
Daniel B
Essas etapas eram exatamente o que eu precisava e me ajudaram a configurar meu sistema usando a versão mais recente do git. Também descobri outra cópia do git que havia baixado do git-scm.com, então executei o script uninstall.sh para removê-lo. Eu estou bem agora, muito obrigado a Fang e Jens!
Michael Sheaver
Obrigado pelas etapas. Para mim, eu pude usar automaticamente o git --version sem executar o último comando echo.
Michael Fulton
0

Eu tenho o mesmo problema. Simplesmente reiniciei meu terminal.

mecanismo serial
fonte
-1

Meu problema foi que eu tinha o aplicativo Mac GitHub instalado. /usr/local/bin/gitestava apontando para a versão do git do aplicativo, não para a versão Homebrew. A desinstalação do aplicativo GitHub corrigiu o problema para mim.

Ben
fonte
-1

Ao usar o homebrew para atualizar o git em sua máquina, siga as seguintes etapas:

brew doctor

Corrija os problemas sugeridos

brew update se houver uma versão mais recente do homebrew disponível

brew install git baixar e instalar a versão mais recente do git

correr brew doctorvai deixar você saber que

Atenção : Você desvinculou barris da sua adega

executar brew link gitresultará no erro

Erro: não foi possível vincular o bin / git

O destino / usr / local / bin / git já existe. Você pode removê-lo:

rm '/ usr / local / bin / git'

brew link --overwrite git para substituir o link simbólico e apontar para o git brew instalado.

Chekkan
fonte
-1

Abra o seu terminal. Digite este comando.

sudo nano /etc/paths

Em seguida, copie o seguinte caminho na parte superior do arquivo.

/usr/local/git/bin

Pressione control + X e salve.

Verifica git --version

Funciona para mim.

Mr Pi
fonte
Não existe esse arquivo git/bin. Você quer dizer bin/git? Além disso, não há necessidade de adicionar isso aos seus caminhos - /usr/local/binjá está lá.
slhck 8/07/19