Come aggiornare Git all'ultima versione su macOS?


165

Ho appena acquistato un nuovo Mac con OS X Lion e ho verificato nel Terminale quale versione di git è installata di default. Ho la risposta

git --version
> git version 1.7.5.4

Vorrei aggiornare git all'ultima versione 1.7.8.3, quindi ho scaricato il programma di installazione dmg "git-1.7.8.3-intel-universal-snow-leopard.dmg" e l'ho lanciato.

Dopo l'installazione, il Terminale dice ancora che la versione è 1.7.5.4. Che cosa sto facendo di sbagliato?


4
Digita which gitper vedere dove si trova il binario. È lo stesso posto in cui hai installato quello nuovo?
Greg Hewgill il

4
Dice /usr/bin/gitper la 1.7.5.4, ma come posso sapere dove il DMG ha installato la nuova versione? Perché non aggiorna / sovrascrive automaticamente la versione precedente? Se voglio usare quello nuovo come posso collegare il gitcomando alla nuova versione? (grazie per la tua risposta davvero rapida a proposito!)
Nicolas Renon il

1
sul mio mac (os 10.6.8) il vecchio git 1.7.5.4 vive in / usr / bin / git mentre il nuovo programma di installazione git 1.7.11.3 inserisce git in / usr / local /
miker il

Mi chiedo se superuser.com/a/580611/74576 sia un buon approccio. Vorrei poter capire i comandi per questo.
Ryan,

Ho effettuato l'accesso in .bash_profile anziché in .bashrc e ha funzionato. Penso che se il tuo terminale funziona come "Default Login Shell", allora succede.
Swapnil Chincholkar,

Risposte:


58

Probabilmente sarebbe meglio se tu aggiungessi:

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

in un file chiamato .bashrc nella tua cartella home. In questo modo /usr/local/git/binverrà trovato per primo anche qualsiasi altro software che potresti installare .

Per un modo semplice per farlo basta digitare:

echo "export PATH=/usr/local/git/bin:/usr/local/sbin:$PATH" >> ~/.bashrc

nel Terminale e lo farà per te.


1
Come dice README.txt, git è installato su / usr / local / git.
bananaaus

18
Il pratico consiglio di kmikael è solo per bash. (Per modificare la shell predefinita del mac, sbloccare gli account o la finestra "utenti e gruppi" nelle preferenze di sistema, fare clic sull'account per "opzioni avanzate" tenendo premuto il tasto Control.) Un suggerimento che utilizza bash_profile anziché bashrc, ad esempio, echo 'export PATH="/usr/local/git/bin:/usr/local/sbin:~/bin:$PATH"' >> ~/.bash_profileè su moncefbelyamani.com . La discussione sull'opportunità di aggiungere a .bash_profile o .bashrc è su superuser.com
miker il

Cosa hai usato per installare git? Ho appena controllato l'ultima versione, il programma di installazione ufficiale qui installa git /usr/local/git/bin/git, il che significa che il metodo sopra dovrebbe funzionare ancora su 10.8.4.
kmikael,

Grazie @miker ha funzionato per me con .bash_profile, ma non .bashrc.
adimauro,

Ho deselezionato questa soluzione, anche se funziona. Si prega di leggere il mio aggiornamento del mio messaggio per la spiegazione.
Nicolas Renon,

52

È semplice se hai già Homebrew : supponendo che tu abbia Homebrew installato, digita quanto segue:

brew install git

Una volta installato, quindi digitare le seguenti due righe, che imposteranno il nostro percorso alla distribuzione git locale anziché a quella Apple.

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

SE NON SEI IN CASA, SEGUI QUESTI PASSI Controlla la versione

$ git --version

Backup (o rimozione) Apple git (Opzionale)

$ sudo mv /usr/bin/git /usr/bin/git-apple

Installa Homebrew se non lo hai fatto

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

O aggiorna se ne hai già

$ brew update && brew upgrade

Installa Git con Homebrew

$ brew install git

Collegamento simbolico

$ brew link --force git

Chiudi Terminale e riapri quindi controlla la versione

$ git --version

Tu dovresti vedere…

git version <latest version>

Bello! Siamo al sicuro adesso! E la prossima volta puoi solo ...

$ brew update && brew upgrade


10
Per quanto riguarda sudo mv /usr/bin/git /usr/bin/git-apple: La ridenominazione di git di sistema non funzionerà su macOS El Capitan e versioni successive a meno che non si disabiliti System Integrity Protection come descritto qui apple.stackexchange.com/a/248229/16290 . Personalmente aggiorno il mio in PATHmodo che /usr/local/binvenga prima /usr/bin. In questo modo il git di Homebrew ha sempre la precedenza (dopo aver chiuso il terminale e riaperto). Per quanto riguarda le vulnerabilità di sicurezza di Git, Apple alla fine aggiornerà Git in bundle con i loro aggiornamenti di sicurezza. Nel frattempo, si può semplicemente evitare di usare git integrato configurando PATH come descritto.
Nate Cook,

16

Dopo aver cercato "problemi nell'aggiornamento di git su mac" su Google, ho letto diversi post e ho provato quanto segue prima di risolvere il problema completando il passaggio 4:

  1. Ho aggiornato il percorso del mio terminale usando il comando di esportazione sopra menzionato. Ogni volta che ho chiuso il terminale e riavviato, quando ho digitato git --versionil terminale, restituisce comunque la versione 1.8 precedente.

  2. Ho seguito le istruzioni README.txt per l'aggiornamento alla versione corrente 2.0.1 che viene fornita con il programma di installazione .dmg e quando ho riavviato il terminale, ancora niente.

  3. Ho cercato / etc / path / folder come indicato sopra e la directory chiamata "path" non esiste sul mio Mac. Sto eseguendo OS X Mavericks versione 10.9.4.

  4. Poi ho ricordato che Homebrew è installato sul mio Mac ed ho eseguito quanto segue:

    brew --version
    brew update
    brew search git
    brew install git
    

Questo ha finalmente risolto il mio problema. Se qualcuno ha qualche idea sul perché questo ha funzionato, ulteriori approfondimenti sarebbero molto apprezzati. Probabilmente ho lasciato alcune impostazioni di percorso sul mio sistema dal lavorare con Ruby l'anno scorso.


1
Avevo già installato git. Quindi quando brew install githo seguito l'ultimo passaggio ho ricevuto un messaggio di errore e mi ha suggerito di eseguire il brew upgrade gitcomando. Tu sei l'uomo! Questo ha fatto semplicemente il trucco :)
Pathros,

15

Di recente ho aggiornato Git sul mio sistema operativo OS X alla versione più recente. Non ho usato lo stesso che .dmghai usato, ma quando l'ho installato sono stati inseriti i binari /usr/local/bin. Ora, nel modo in cui il mio è PATHstato organizzato, la directory /usr/binappare prima /usr/local/bin. Quindi quello che ho fatto è stato:

cd /usr/bin
mkdir git.ORIG
mv git* git.ORIG/

In questo modo i diversi programmi originali vengono denominati git*in una nuova sottodirectory che li tiene lontani. Successivamente, which gitmostra che quello in /usr/local/binè stato trovato.

Modificare la procedura sopra descritta in modo da adattarla ovunque siano stati installati i nuovi binari.


2
Grazie! In realtà sono stati inseriti i nuovi binari /usr/local/git.
Nicolas Renon,

1
Nota: ho dovuto riavviare Terminal per vedere il nuovo git. Sembra ovvio ma all'inizio mi ha confuso.
migg,

15

se usi homebrew puoi aggiornare i collegamenti sim usando

brew link --overwrite git

Ho provato tutte le altre risposte sopra questa e questo è ciò che finalmente mi ha impostato con l'ultima versione di Git. l'esecuzione brew install gitmi ha fornito l'ultima versione ma non ha impostato correttamente il collegamento simbolico. correre brew link gitmi ha dato un errore dicendo che non poteva symlink git perché esisteva già. finalmente correndo brew link --overwrite gitmetti l'unghia nella bara quindi ora git --versionmostra che sono sulla versione più aggiornata di git
Gharbad The Weak

7

Il programma di installazione dalla homepage di git si installa /usr/local/gitdi default. Tuttavia, se installi XCode4 , installerà una versione git in /usr/bin. Per garantire la si può aggiornare facilmente dal sito web e utilizzare il vostro informazioni del profilo a posto ultima versione Git, modificare sia /usr/local/git/binprima che /usr/binnel $ PATH o modificare /etc/pathse inserto /usr/local/git/bincome prima voce.

Potrebbe essere d'aiuto a qualcuno almeno cambiare l'ordine in / etc / percorsi funzionati per me.



6

Ho usato il seguente per aggiornare git su mac.

hansi$ brew install git 

hansi$ git --version 
git version 2.19.0


hansi$ brew install git
Warning: git 2.25.1 is already installed, it's just not linked
You can use `brew link git` to link this version.

hansi$ brew link git 
Linking /usr/local/Cellar/git/2.25.1... 
Error: Could not symlink bin/git
Target /usr/local/bin/git
already exists. You may want to remove it:
  rm '/usr/local/bin/git'

To force the link and overwrite all conflicting files:
  brew link --overwrite git

To list all files that would be deleted:
  brew link --overwrite --dry-run git

hansi$ brew link --overwrite git 
Linking /usr/local/Cellar/git/2.25.1... 205 symlinks created


hansi$ git --version
git version 2.25.1

nel mio caso avevo già installato git e l'ho reinstallato usando homebrew che ha scaricato una versione più recente, ma non era collegata correttamente. Ho finito per scollegare manualmente, quindi ricollegare e poi ha funzionato. Avevo anche bisogno di riaprire la mia sessione terminale in modo che potesse trovare la nuova versione anziché la versione precedente / di sistema: brew unlink git && brew link git && source ~/.bashrc
FireDragon


2

Per mantenere entrambe le versioni, ho appena cambiato il valore della variabile d'ambiente PATH inserendo all'inizio il percorso git "/ usr / local / git / bin /" della nuova versione, impone di utilizzare la versione più recente:

$ echo $ PERCORSO

/ Usr / bin: bin /: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin: / usr / local / git / bin /

$ git --version

versione git 2.4.9 (Apple Git-60)

valore originale: / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin: / usr / local / git / bin /

nuovo valore: / usr / local / git / bin / : / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin

$ export PATH = / usr / local / git / bin /: / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin

$ git --version

versione git 2.13.0


1

Senza homebrew

  1. Utilizzare il programma di installazione dal sito Web di git.
  2. Aggiorna il tuo ~/.bash_profilefile.Si noti che questo comando differisce dalla risposta di kmikael da ciò che inserisce nel file:
    • Altro comando: export PATH=/usr/local/git/bin:/usr/local/sbin/:[and so on]
    • Sotto il comando: export PATH="/usr/local/git/bin:/usr/local/sbin:$PATH"
    • Usa quello che preferisci.

echo 'export PATH="/usr/local/git/bin:/usr/local/sbin:$PATH"' >> ~/.bash_profile

  1. Se stai usando Xcode, dovrai aggiungere alcuni collegamenti simbolici .
    • Esempio: ln -s /opt/local/bin/git /usr/bin/git
  2. Riavvia terminale.
    • which git dovrebbe dire la directory in README.txt file dal dmg.
    • git --version dovrebbe dire la versione aggiornata.
    • echo $PATH dovrebbe iniziare con /usr/local/git/bin:/usr/local/sbin:

0

Preferisco non alterare la gerarchia dei percorsi, ma piuttosto occuparmi di git in particolare ... sapendo che non userò mai vecchio git per fare ciò che ora sarà gestito da nuovo git . Questa è una soluzione di forza bruta.

NOTA: ho installato XCode su Yosemite (10.10.2) per primo .

Ho quindi installato dal file binario disponibile su git-scm.com .

$ which git
/usr/bin/git
$ cd /usr/bin
$ sudo ln -sf /usr/local/git/bin/git
$ sudo ln -sf /usr/local/git/bin/git-credential-osxkeychain
$ sudo ln -sf /usr/local/git/bin/git-cvsserver
$ sudo ln -sf /usr/local/git/bin/git-receive-pack
$ sudo ln -sf /usr/local/git/bin/git-shell
$ sudo ln -sf /usr/local/git/bin/git-upload-archive
$ sudo ln -sf /usr/local/git/bin/git-upload-pack
$ ls -la
(you should see your new symlinks)

0

L'ho fatto in questo modo:

  1. Apri l'applicazione GitHub installata su Mac
  2. Fare clic sulla scheda Avanzate → Installa strumenti da riga di comando
  3. Una volta ricevuto il messaggio che tutti i comandi sono stati installati, chiudere il terminale e riaprirlo.
  4. Ora controlla git --version, dovrebbe darti l'ultima versione.

0

Devi regolare il percorso della shell, il percorso sarà impostato in .bashrc o .bash_profile nella tua home directory, molto probabilmente .bash_profile

Quindi aggiungi nel percorso simile al seguente e mantieni ciò che hai già nel percorso, ogni segmento è separato da due punti:

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


0

L'ultima versione non era disponibile come binario per mac su git-scm.com, quindi ho installato dal sorgente. Mi mancava un pacchetto richiesto per la localizzazione e aggiunto NO_GETTEXT=trueper l'installazione senza localizzazione.

git clone https://github.com/git/git.git
cd git
make NO_GETTEXT=true
make NO_GETTEXT=true install

Questo installato in gitbase al ~/binquale ho dovuto aggiungere all'inizio della mia PATHvariabile.

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.