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_profile
seguito da
source ~/.bash_profile
risolto il problema per il mio utente.
/usr/local/bin
sopra /usr/bin
in /etc/paths
.
brew doctor
per diagnosticare il problema
/etc/paths
. Definire solo l '"esportazione" potrebbe non essere sufficiente, se /usr/bin
ha "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 git
indicando /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 git
ha 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/bin
alla vostra $PATH
variabile 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/bin
nella 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/bin
si trovi nella $PATH
variabile 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 $PATH
anticipo /usr/bin
invece 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/git
git --version
, se restituisce la vecchia versione di git di Apple, procedi di seguitocd ~
(cambia la directory nella tua home directory)vi .bashrc
i
(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 PATH
variabile non rovinarla altrimenti causerà problemi al tuo sistema operativo) (si spera che dovrebbe essere installato nuovo git /usr/local/git
):wq
(per salvare il .bashrc
file)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 doctor
e correggi tutti gli altri ostacolibrew upgrade
per aggiornare tutti i pacchetti contemporaneamente