Come usare git Homebrew installato su Mac?


116

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?


2
Hai un paio di buone risposte, quindi volevo commentare la domanda. Stai cercando istruzioni esplicite per installare git dal sorgente da homebrew o da un client GUI o semplicemente conferma che OS X raggruppa diverse versioni di git con il SO principale? opensource.apple.com/source/Git (FWIW - L'ultimo git che ho visto finora il bundle Apple è l'1.7.12.4 che proviene da Git-37)
bmike

Risposte:


106

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.


17
Se desideri che la modifica sia persistente tra gli utenti, puoi spostarti /usr/local/binsopra /usr/binin /etc/paths.
Kevin

3
Questa è la soluzione proposta dallo stesso Homebrew quando corre brew doctorper diagnosticare il problema
VoxPelli,

1
questa risposta dovrebbe essere aggiornata con la soluzione proposta da KevinT di definire /etc/paths. Definire solo l '"esportazione" potrebbe non essere sufficiente, se /usr/binha "precedenza" rispetto /usr/local/bin(dalla birra) ...
emgsilva,

8
Ricorda di riavviare il terminale! Non mi è
venuto

2
@Souleiman: il riavvio non è necessario. source ~/.bash_profilerileggerà quello. Il riavvio è probabilmente solo più veloce / più facile. :)

44

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 ! :)


PS Relativo ai commenti sui rischi di modifica / usr / bin: IMHO è NBD. (Anche se mi piace il suggerimento del nomade globale di fare "sudo ln -s / usr / local / bin / git / usr / bin / git" ... che garantisce che qualsiasi cosa che chiami "/ usr / bin / git" ottenga esplicitamente la tua birra gestita. Ma la mia opinione è che l'installazione di git implica che stai assumendo la proprietà di git sul tuo sistema. Le preoccupazioni per i processi sconosciuti che utilizzano una versione precedente e alternativa di git potrebbero essere fuori luogo. Ti consiglio di tenerti aggiornato w / versioni git (per sicurezza, non solo funzionalità) e gestione da soli. Homebrew rende tutto più semplice. /$0.02
cweekly

Questo non ha funzionato per me, per annullarlo, basta fare: sudo mv / usr / bin / git-apple / usr / bin / git. Il commento di Juan Diego Gonzales ha funzionato. (sostanzialmente, segui la risposta accettata, quindi riavvia il terminale).
Souleiman,

Anche which gitindicando /usr/local/bin/git, questo non ha funzionato per me. Per risolvere questo problema, ho dovuto disinstallare l'app GitHub per Mac.
Ben

2
MacOS 10.12.5:sudo mv /usr/bin/git /usr/bin/git-apple mv: rename /usr/bin/git to /usr/bin/git-apple: Operation not permitted
Vladislav Rastrusny il

In questi giorni sembra che l'homebrew si metta al "fronte" del PERCORSO, quindi speriamo non sia più necessario :)
rogerdpack

32

Status 2019

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

16
Penso che sia giusto, ma è necessario aprire un nuovo terminale o la modifica non viene rilevata
robjwilkins,

Questo non funziona purtroppo per me.
rsp1984,

2
Questo ha funzionato per me su Mojave. Ho fatto dovuto aprire un nuovo terminale.
Craig Otis il

2
brew link --overwrite githa funzionato per me
wickdninja,

9

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.


1
In cosa differisce dalla risposta accettata?
user151019

6
Nel mio caso, non sapevo di dover riavviare Terminal, quindi quella parte potrebbe aiutare alcune persone. È più veloce di quello accettato a causa del rivestimento unico. Se è una competizione, penso che la mia risposta sia fuori luogo. Altrimenti penso che contribuisca. (Dimmi se vuoi che faccia una modifica invece di questa).
Juan Diego Gonzales,

Lo fai una sola volta quando installi Homebrew
user151019

7
Ho trovato utile questa risposta. Il riavvio del terminale è un problema non ovvio per molte persone che non hanno familiarità con il funzionamento di .bash_profile e un gentile promemoria per il resto di noi.
Magne,

@JuanDiegoGonzales Ottima osservazione! Mi chiedevo la stessa identica cosa dopo aver installato git e non sapevo perché. Dopo il suggerimento sulla cache , ho fatto un po 'più di ricerca: unix.stackexchange.com/q/5609/52921
kstratis

4

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 è

  1. assicurati di disporre dei diritti di amministratore in quanto ti verrà richiesta la password per l'amministratore
  2. rinominare la posizione originale rinominandola usando mv. Per esempio

    sudo mv / usr / bin / git / usr / bin / git-ORIGINAL

  3. creare un collegamento software usando 'ln -s' al binario git installato con Homebrew.

Nota che MattDMo ha una soluzione migliore nei commenti.


Questo è sicuro al 100%? Romperà qualcosa legato al mac?
Levani,

Se segui i passaggi indicati, la soluzione non romperà nulla di preinstallato poiché questi eseguibili git non vengono eliminati. Questo è il motivo per cui al passaggio 2 dovresti rinominare l'originale / usr / bin / git, ad esempio come /usr/bin/git.BACKUP
globale,

10
Per favore, non farlo - non dovresti davvero scherzare /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
MattDMo

Grazie @MattDMo, sembra essere l'approccio migliore in questo caso.
Levani,

2

Ho provato questo e funziona per me.

brew link --overwrite git

Ha funzionato per me su Mojave (10.14.4)
pepato il

1

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.


3
Non rinominare o chnage le cose in / usr / bin in quanto potrebbero rompere i colpi di Apple e verranno chnaged quando si esegue un aggiornamento del sistema o XCode. usa il percorso per cui è stato progettato,
user151019

@Mark hai ragione. Ma non credo che avrai problemi se cambi solo git in / usr / bin. Per me funziona da diversi mesi.
Pfitz,

Concordo sul fatto che cambiare le cose normalmente in / usr / bin è una cattiva notizia, ma non ricordo che OS X in realtà abbia usato git, quindi il danno potrebbe essere minuscolo e riguardare solo un sistema "pulito" che corrisponde alle ricevute. Il danno sarebbe un aggiornamento di OS X che potrebbe sostituire il nuovo git con una versione precedente, quindi la normale pratica di individuare un nuovo binario al di fuori della posizione del percorso di sistema.
bmike

3
Penso che sarebbe molto più facile aggiungere /usr/local/bin(directory di installazione di homebrew, IIRC) in $PATHanticipo /usr/bininvece di confondersi con la ridenominazione e il backup, ecc.
MattDMo

1

Installa git con brew, esegui questo.

brew link --force git

Chiudere e riaprire il terminale per l'esecuzione which git.


1
Come cambia il percorso predefinito?
user151019,

Questo ha funzionato per me per ignorare il git di xcode.
Surjikal,

Ho brew link --overwrite git
riscontrato

0

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.

  1. Installa git da git-scm.com
  2. Molto probabilmente verrà installato il nuovo git /usr/local/bin/git
  3. Prova git --version, se restituisce la vecchia versione di git di Apple, procedi di seguito
  4. cd ~ (cambia la directory nella tua home directory)
  5. genere vi .bashrc
  6. Usa i(per inserire testo nell'editor vi)
  7. Se trovi una riga con 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)
  8. Premere esc
  9. Invio :wq(per salvare il .bashrcfile)
  10. Esci dal terminale e avvia il nuovo terminale
  11. Ora prova git --version(dovresti vedere la nuova versione)

-1

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.


è in /usr/bin/git...
Levani,

2
Sembra due installazioni. Penso che la normale versione (scaricabile) di git vada in / usr / local / git / ... È quindi una questione di aggiungerla al percorso o rimuovere l'altra (o entrambe)
Nicholaz,

-2

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.

passi

  1. Vai su Xcode.app -> Preferenze -> Download
  2. Aggiorna (o installa) Strumenti da riga di comando
  3. Esegui brew doctore correggi tutti gli altri ostacoli
  4. Esegui brew upgradeper aggiornare tutti i pacchetti contemporaneamente
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.