Ho installato la versione più recente di git (1.8.3) usando homebrew ma quando scrivo
git --version
nel mio terminale, stampa:
git version 1.7.10.2 (Apple Git-33)
Cosa devo fare per sostituire la vecchia versione di Git con quella nuova?
Ho installato la versione più recente di git (1.8.3) usando homebrew ma quando scrivo
git --version
nel mio terminale, stampa:
git version 1.7.10.2 (Apple Git-33)
Cosa devo fare per sostituire la vecchia versione di Git con quella nuova?
Risposte:
Grazie a tutti per le risposte utili. Nel mio caso aggiungo
export PATH="/usr/local/bin:${PATH}"
in ~/.bash_profileseguito da
source ~/.bash_profile
risolto il problema per il mio utente.
/usr/local/binsopra /usr/binin /etc/paths.
brew doctorper diagnosticare il problema
/etc/paths. Definire solo l '"esportazione" potrebbe non essere sufficiente, se /usr/binha "precedenza" rispetto /usr/local/bin(dalla birra) ...
Ok, sono pronto a prendere sul serio la scm.
$ git --version
git version 1.9.5 (Apple Git-50.3)
No, non è quello che volevo. I <3 homebrew, quindi:
$ brew install git
Tutto stabilito?
$ git --version
git version 1.9.5 (Apple Git-50.3)
Doh! (graffi sulla testa)
$ which git
/usr/bin/git
Ah, il git di Apple è in / usr / bin, quindi supera quello homebrew. Cosa fare?
(A) Basta rinominare il file binario di Apple
(B) Lasciate che una gestita da homebrew abbia la precedenza:
[modifica esportazione PATH ad es. in ~ / .zshrc (oh-my-zsh + iTerm2 FTW! / tangent)]
[in particolare: move / usr / local / bin / git: before / usr / bin:]
... e / o (ad es. per consentire l'installazione più ampia del sistema Trump di homebrew stuff e avere la precedenza applicabile a tutte le shell e gli utenti) modificare anche il file / etc / percorsi, [moving / usr / local / bin above / usr / bin ]
Ma assumendo solo l'approccio più semplice / meno invasivo:
$ sudo mv /usr/bin/git /usr/bin/git-apple
Ha funzionato?
$ which git
/usr/local/bin/git
Fin qui tutto bene, ora il momento della verità:
$ git --version
git version 2.2.1
w00t! :) È ora di leggere http://git-scm.com ! :)
which gitindicando /usr/local/bin/git, questo non ha funzionato per me. Per risolvere questo problema, ho dovuto disinstallare l'app GitHub per Mac.
sudo mv /usr/bin/git /usr/bin/git-apple mv: rename /usr/bin/git to /usr/bin/git-apple: Operation not permitted
Tutti i trucchi menzionati qui in diverse risposte non sono più necessari su macOS Sierra e Mojave con l'ultimo Homebrew. Dimentica export PATH="..."e modifica a ~/.bash_profile.
Lo fai semplicemente
brew install git
e hai fatto.
Per confermare, aprire una nuova finestra (!) Del terminale e digitare
git --version
brew link --overwrite githa funzionato per me
Dopo aver installato l'ultimo git tramite brew ( brew install git), esegui questo one-liner (come suggerito da brew doctor) se non è già lì:
echo "export PATH=/usr/local/bin:$PATH" >> ~/.bash_profile
Quindi uscire da Terminal e aprirlo di nuovo (riavviare la sessione bash). Devi farlo anche se il tuo PERCORSO era già corretto, poiché ZSH e Bash memorizzano nella cache il contenuto di PERCORSO (consulta la documentazione sul comando integrato hash).
Ciò dovrebbe risolvere le cose molto velocemente.
Quando si digita
git --version
in Terminal.app o console, il tuo commento su un'altra domanda indica che la versione che restituisce è git in / usr / bin / git
Se hai installato Xcode 4.5 (e versioni successive) e digita
xcrun git --version
in Terminal.app o console, la versione che restituisce è git nel bundle dell'app Xcode.
Se stai usando Homebrew per installare e aggiornare git, la soluzione più semplice è
rinominare la posizione originale rinominandola usando mv. Per esempio
sudo mv / usr / bin / git / usr / bin / git-ORIGINAL
creare un collegamento software usando 'ln -s' al binario git installato con Homebrew.
Nota che MattDMo ha una soluzione migliore nei commenti.
/usr/bin, poiché è possibile che altri programmi che non conosci nemmeno dipendano dai capricci associati a una particolare versione. La soluzione più semplice, senza muovere nulla, è quello di aggiungere /usr/local/binalla vostra $PATHvariabile d'ambiente prima /usr/bin- IIRC, homebrew installa a/usr/local/bin
Devi rinominare l'originale git con apple in /usr/bin/es. Git-org poiché /usr/binè normalmente /usr/local/binnella directory del tuo percorso dove si trova la roba della birra.
Così:
cd /usr/bin
sudo mv git git-org
e non dimenticare di collegare il brew git
brew link git
Ciò presuppone che /usr/local/binsi trovi nella $PATHvariabile di ambiente. Se il problema persiste, provare a eseguire
brew doctor
e risolvere i problemi menzionati qui.
/usr/local/bin(directory di installazione di homebrew, IIRC) in $PATHanticipo /usr/bininvece di confondersi con la ridenominazione e il backup, ecc.
Installa git con brew, esegui questo.
brew link --force git
Chiudere e riaprire il terminale per l'esecuzione which git.
brew link --overwrite git
Se stai installando git direttamente da git-scm.com e vorresti usare l'ultima versione di git scaricata invece di apple (vecchia) versione di git.
/usr/local/bin/gitgit --version, se restituisce la vecchia versione di git di Apple, procedi di seguitocd ~ (cambia la directory nella tua home directory)vi .bashrci(per inserire testo nell'editor vi)export PATH......., premi invio sopra l'esportazione e digita quanto segue: export PATH=/usr/local/:$PATH(Fai molta attenzione con la PATHvariabile non rovinarla altrimenti causerà problemi al tuo sistema operativo) (si spera che dovrebbe essere installato nuovo git /usr/local/git):wq(per salvare il .bashrcfile)git --version(dovresti vedere la nuova versione)Dipende da dove viene il tuo git. Xcode porta ad esempio una versione, forse che è in anticipo nel tuo percorso.
Magari scrivendo
which git
mostrerà dove si trova quello vecchio.
/usr/bin/git...
Per aggiornare qualsiasi cosa usando Homebrew su OSX che implica la compilazione usando gcc, assicurati di avere gli strumenti della riga di comando aggiornati da Xcode: sì, lo so, fa schifo dover nascondere uno strumento a livello di sistema nelle preferenze di un'app.
brew doctore correggi tutti gli altri ostacolibrew upgradeper aggiornare tutti i pacchetti contemporaneamente