Non è possibile utilizzare git homebrew installato


16

Sto riscontrando un problema davvero strano quando provo a utilizzare l'ultima versione di Git che ho appena installato tramite homebrew. which gitmi sta indicando l'installazione homebrew, ma chiamando gitrestituisce la versione originale installata con OS X.

Ho controllato prima di vedere la versione originale in cui mi trovavo.

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

Poi sono andato a homebrew per installare l'ultima versione.

[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

Sembra che abbia funzionato! Verifica che stia indicando il git corretto

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

Dovrebbe essere buono, vero? Non così in fretta

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

Quello è strano. Sto davvero indicando il giusto idiota?

[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

Assomiglia. Funziona quando lo chiamo manualmente

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

Ma non come git

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

Qualche idea su cosa potrebbe causare questo?

EDIT: risolto. source .bashrcaggiustato. Ancora curioso di sapere perché whichmi restituirebbe l'eseguibile corretto ma non verrebbe chiamato, se qualcuno potesse spiegarlo.


Non sono sicuro di quale sia esattamente il problema, ma sembra che potresti voler dare un'occhiata al valore attuale di $PATH.
Zev Eisenberg,

3
se vuoi vedere tutte le versioni di git che hai installato usa -> which -a git - (quale git, ti restituisce il percorso del primo trovato nella tua variabile PATH) per vedere quali percorsi hai nel tuo PATH fanno un -> echo $ PATH
konqui

Risposte:


25

Le shell mantengono una cache dei percorsi in cui sono stati trovati eseguibili nella $PATHvariabile. Quindi è stato memorizzato nella cache /usr/bin/gitanziché /usr/local/bin/git, poiché quest'ultimo non esisteva all'avvio della shell. L'esecuzione hash -rin Bash dal tuo terminale corrente cancellerà questa cache, quindi la prima istanza trovata $PATHdovrebbe essere quella che viene eseguita.


hash -rha funzionato per me
ingranaggi in metallo solido

5

Ho avuto lo stesso identico problema. Ecco la mia soluzione

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

Dopodiché, non sarai in grado di vedere alcuna modifica durante l'esecuzione git --version. Esci e accedi nuovamente, esegui di git --versionnuovo.


7
L'apertura di una nuova finestra Terminale è sufficiente. In alternativa, si potrebbe anche chiamare source ~/.bash_profile.
Daniel B,

Questi passaggi erano esattamente ciò di cui avevo bisogno e mi hanno aiutato a impostare il mio sistema usando l'ultima versione di git. Ho anche scoperto un'altra copia di git che avevo scaricato da git-scm.com, quindi ho eseguito lo script uninstall.sh per rimuoverlo. Ora sto bene, grazie mille a Fang e Jens!
Michael Sheaver,

Grazie per i passaggi. Per me, sono stato automaticamente in grado di usare git --version senza eseguire l'ultimo comando echo.
Michael Fulton,


-1

Il mio problema era che avevo installato l'app Mac GitHub. /usr/local/bin/gitpuntava alla versione dell'app di git, non alla versione Homebrew. La disinstallazione dell'app GitHub ha risolto il problema per me.


-1

Quando usi homebrew per aggiornare git sul tuo computer, segui i seguenti passi:

brew doctor

Risolvi i problemi suggeriti

brew update se è disponibile una versione più recente di homebrew

brew install git per scaricare e installare l'ultima versione di git

correre brew doctorti farà sapere questo

Attenzione : nella tua cantina ci sono fusti non collegati

l'esecuzione brew link gitcomporterà l'errore

Errore: impossibile eseguire il collegamento simbolico bin / git

Target / usr / local / bin / git esiste già. Potrebbe essere necessario rimuoverlo:

rm '/ usr / local / bin / git'

brew link --overwrite git per sovrascrivere il collegamento simbolico e puntare al brew git installato.


-1

Apri il tuo terminale. Immettere questo comando

sudo nano /etc/paths

Quindi copia il seguente percorso nella parte superiore del file.

/usr/local/git/bin

Premi control + X e salva.

Dai un'occhiata git --version

Per me va bene.


Non esiste tale file git/bin. Intendi bin/git? Inoltre, non è necessario aggiungerlo ai percorsi: /usr/local/binè già presente.
slhck
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.