2013-02-24 16 views
5

Sono su OSX 10.8.2 e sto correndo v1.7.4.4 git gitCome aggiornare la mia versione di git su OSX 10.8

Ho appena installato git su un server remoto ed è la versione 1.11. X. Mi piacerebbe essere in esecuzione la stessa versione del software, ma non riesco a capire come aggiornare git sul mio portatile.

ho cercato di seguire i passaggi elencati here, che istruiscono per scaricare l'git-OSX-installer, eseguire l'installazione (che si è svolta senza problemi) e poi fare:

$ sudo mkdir -p /usr/local/bin 
$ sudo ln -s /usr/local/git/bin/git /usr/local/bin/git 

Ma dopo questo lo faccio git --version ed è ancora 1.7. 4.4. Ho appena reinstallato la stessa versione? O ho installato una versione più recente da qualche altra parte?

Ho letto domande simili e penso che il problema sia che OSX viene fornito con una versione precedente di git installata in una posizione diversa da quella in cui verranno installate le porte git-osx-installer o mac. Ma non sono sicuro di come correggere questo. Grazie in anticipo per il tuo consiglio.

Aggiornamento:

which git restituisce: /GIT

echo $PATH restituisce/usr/bin: /opt/local/bin:///sbin locali opt: gemme/usr/local/RVM//ruby-1.9.3-p194/bin:/usr/local/rvm/gems/[email protected]/bin:/usr/local/rvm/rubies/ruby-1.9.3-p194/bin :/usr/local/RVM/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/opt/mq/bin:/opt/sm/pkg/active/bin:/opt/sm/pkg/active/sbin

Update2:

ESL ~/Downloads$ export PATH=/usr/local/bin:$PATH 
ESL ~/Downloads$ which git 
/usr/local/bin/git 
ESL ~/Downloads$ 
ESL ~/Downloads$ git --version 
git version 1.8.1.3 

Sembra che ho installato la versione git più recente in locale. Quindi dovrei aggiungere lo export PATH=/usr/local/bin:$PATH al mio .bash_profile? È un problema che sono installate entrambe le versioni di git?

Ho aggiunto export PATH=/usr/local/bin:$PATH nella parte inferiore del mio ~/.bash_profile e ora gira la nuova versione di git.

+0

cos'è 'which git'displaying? il risultato di 'echo $ PATH' contiene'/usr/local/bin'? –

+0

Ho aggiunto entrambi alla domanda sopra. – emersonthis

risposta

16

Poiché/usr/bin appare prima di/usr/local/bin nel percorso, verrà data precedenza al eseguibile git in/usr/bin. provare questo nella shell:

export PATH=/usr/local/bin:$PATH 
which git 

Una nota a parte, mi consiglia vivamente di utilizzare homebrew per la gestione di installazioni di questo tipo su MacOS

+0

Ho aggiunto i risultati del test sopra, con alcune domande corrispondenti. – emersonthis

+0

non è un problema che hai installato entrambe le versioni - puoi aggiungere quella linea di esportazione al tuo ~/.bashrc e da quel momento in poi la versione in/usr/local/bin avrà sempre la precedenza. –

+0

A questo punto, dovrei ancora considerare l'homebrew o semplicemente lasciare quello che ho? Non ne so molto dei gestori di pacchetti, quindi sarei curioso di sapere perché lo hai fortemente raccomandato. – emersonthis

3

Ho avuto un problema simile in Cygwin (ambiente Linux compilato per Windows). Farei

which git 

e sarebbe rispondere con la posizione corretta del git aggiornato compilata dai sorgenti, ma non sarebbe in realtà utilizzarlo fino a quando ho fatto

hash -r git 

Non ho la pretesa di capire cosa ha fatto o perché è stato fatto, ma dopo che git --version ha risposto con "1.8.2.rc0.22.gb3600c3" che chiaramente non era più il vecchio git fornito con Cygwin. Questo potrebbe non essere applicabile a OSX, ma dargli uno scatto se which git sta localizzando il file binario aggiornato.

+0

Ho aggiunto il mio 'which git' e un' $ PATH' alla domanda. Questo ti cambia consiglio? – emersonthis

+0

Non proprio, prova semplicemente 'hash -r git' e poi guarda cosa ti dà git --version'. – Ehryk

+0

Grazie! Non ero a conoscenza che la shell utilizza hash-tabelle per la memorizzazione dei percorsi dei file eseguibili. Puoi anche riavviare la shell, inoltre cancellerà la tabella hash. Per ulteriori dettagli: http://crashingdaily.wordpress.com/2008/04/21/hashing-the-executables-a-look-at-hash-and-type/ – HyBRiD

17

Il modo migliore per aggiornare qualsiasi binario su una macchina Mac OSX è quello di utilizzare il pacchetto (s) sviluppato specificamente per Mac (un download di .dmg o .pkg).

Nel caso di git questo è a: http://git-scm.com/download/mac (facendo clic su questo collegamento si avvia automaticamente il download dell'ultima versione di git per Mac).

Tuttavia, in questo caso (almeno per il mio MacBook 10.8.3) questo non era abbastanza tutta la storia: il pacchetto installa git in /usr/local/git e poi aggiunge che il percorso al termine del $PATH - che sconfigge l'intero scopo IMO .

ho modificato manualmente mia .bashrc in modo da avere qualcosa di simile a quello che suggerito sopra:

export PATH=/usr/local/git/bin:$PATH 

Una volta fatto questo, si dovrebbe vedere la versione corretta di git dalla raccolta:

$ git --version 
git version 1.8.2.2 

Si noti che questo non funzionerà per qualsiasi app che viene avviata in modo interattivo (ad esempio, tramite la barra di aggancio) - sarà necessario eseguire lo script aggiuntivo fornito nel pacchetto scaricato; vedere il README per istruzioni.

+0

C'è un modo semplice per annullare questa modifica? Voglio solo verificare se un altro metodo che ho provato funziona. – reem

Problemi correlati