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.