Wie aktualisiere ich Git auf die neueste Version unter macOS?

164

Ich habe gerade einen neuen Mac mit OS X Lion gekauft und im Terminal überprüft, welche Version von git standardmäßig installiert ist. Ich habe die Antwort bekommen

git --version
> git version 1.7.5.4

Ich möchte git auf die neueste Version 1.7.8.3 aktualisieren, also habe ich das dmg-Installationsprogramm "git-1.7.8.3-intel-universal-snow-leopard.dmg" heruntergeladen und gestartet.

Nach der Installation meldet das Terminal weiterhin, dass die Version 1.7.5.4 ist. Was mache ich falsch?

Nicolas Renon
quelle
4
Geben Sie ein, um which gitzu sehen, wo sich die Binärdatei befindet. Ist das derselbe Ort, an dem Sie den neuen installiert haben?
Greg Hewgill
4
Es heißt /usr/bin/gitfür die 1.7.5.4, aber wie kann ich wissen, wo die DMG die neue Version installiert hat? Warum wird die vorherige Version nicht automatisch aktualisiert / überschrieben? Wenn ich die neue verwenden möchte, wie kann ich den gitBefehl mit der neuen Version verknüpfen ? (Danke übrigens für Ihre wirklich schnelle Antwort!)
Nicolas Renon
1
auf meinem mac (os 10.6.8) lebt der alte git 1.7.5.4 in / usr / bin / git, während der neue git installer 1.7.11.3 git in / usr / local /
miker
Ich frage mich, ob superuser.com/a/580611/74576 ein guter Ansatz ist. Ich wünschte, ich könnte die Befehle dafür herausfinden.
Ryan
Ich habe einen Eintrag in .bash_profile anstelle von .bashrc gemacht und es hat funktioniert. Ich denke, wenn Ihr Terminal als "Standard-Login-Shell" ausgeführt wird, passiert es.
Swapnil Chincholkar

Antworten:

58

Es wäre wahrscheinlich besser, wenn Sie hinzufügen würden:

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

in eine Datei mit dem Namen .bashrc in Ihrem Home-Ordner. Auf diese Weise wird auch jede andere Software, in der Sie möglicherweise installieren /usr/local/git/bin, zuerst gefunden.

Geben Sie dazu einfach Folgendes ein:

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

in das Terminal und es wird es für Sie tun.

kmikael
quelle
1
Wie in README.txt angegeben, wird git in / usr / local / git installiert.
Bananaaus
18
kmikaels praktischer Tipp ist nur für Bash. (Um Änderung mac Standard - Shell entsperren die Konten oder „Benutzer & Gruppen“ Fenster in System prefs, bei gedrückter Ctrl-Konto für „erweiterte Optionen“.) Ein Vorschlag mit bash_profile statt bashrc, zB echo 'export PATH="/usr/local/git/bin:/usr/local/sbin:~/bin:$PATH"' >> ~/.bash_profileist bei moncefbelyamani.com . Diskussion, ob zu .bash_profile oder .bashrc hinzuzufügen , ist bei superuser.com
miker
Was haben Sie zur Installation verwendet git? Ich habe gerade die neueste Version überprüft, das offizielle Installationsprogramm hier installiert git /usr/local/git/bin/git, was bedeutet, dass die oben beschriebene Methode unter 10.8.4 weiterhin funktionieren sollte.
kmikael
Danke @miker, es hat bei mir mit .bash_profile funktioniert, aber nicht mit .bashrc.
Adimauro
Ich habe diese Lösung deaktiviert, auch wenn sie funktioniert. Bitte lesen Sie mein Update meiner Nachricht für die Erklärung.
Nicolas Renon
52

Es ist ganz einfach, wenn Sie bereits Homebrew haben : Angenommen, Sie haben Homebrew installiert, geben Sie Folgendes ein:

brew install git

Geben Sie nach der Installation die folgenden zwei Zeilen ein, die unseren Pfad zur lokalen Git-Distribution anstelle der Apple-Distribution festlegen.

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

WENN SIE KEINE HAUSBRAUEN HABEN, BEFOLGEN SIE DIESE SCHRITTE Überprüfen Sie die Version

$ git --version

Apple Git sichern (oder entfernen) (optional)

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

Installieren Sie Homebrew, wenn Sie keine hatten

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

Oder aktualisieren Sie, wenn Sie bereits haben

$ brew update && brew upgrade

Installieren Sie Git mit Homebrew

$ brew install git

Symbolischer Link

$ brew link --force git

Schließen Sie das Terminal und öffnen Sie es erneut. Überprüfen Sie dann die Version

$ git --version

Das solltest du sehen…

git version <latest version>

Nett! Wir sind jetzt in Sicherheit! Und das nächste Mal kannst du einfach ...

$ brew update && brew upgrade

kvm006
quelle
10
Zu sudo mv /usr/bin/git /usr/bin/git-apple: Das Umbenennen von System Git funktioniert unter macOS El Capitan und höher nur, wenn Sie den Systemintegritätsschutz wie hier beschrieben deaktivieren . Apple.stackexchange.com/a/248229/16290 . Persönlich aktualisiere ich nur meine, PATHso dass /usr/local/binvorher kommt /usr/bin. Auf diese Weise hat Homebrews Git immer Vorrang (nachdem Sie das Terminal geschlossen und wieder geöffnet haben). Bei Sicherheitslücken in Git wird Apple das gebündelte Git eventuell mit seinen Sicherheitsupdates aktualisieren. In der Zwischenzeit kann man die Verwendung des eingebauten Git einfach vermeiden, indem man PATH wie beschrieben konfiguriert.
Nate Cook
16

Nachdem ich bei Google nach "Probleme beim Aktualisieren von Git auf Mac" gesucht hatte, las ich mehrere Beiträge und versuchte Folgendes, bevor ich das Problem durch Ausführen von Schritt 4 löste:

  1. Ich habe meinen Terminalpfad mit dem oben genannten Exportbefehl aktualisiert. Jedes Mal, wenn ich git --versiondas Terminal beende und neu starte, wenn ich das Terminal eingebe , wird immer noch die ältere Version 1.8 zurückgegeben.

  2. Ich habe die README.txt-Anweisungen zum Aktualisieren auf die aktuelle Version 2.0.1 befolgt, die mit dem .dmg-Installationsprogramm geliefert wird, und als ich das Terminal neu gestartet habe, ist es immer noch nicht möglich.

  3. Ich habe wie oben beschrieben nach / etc / path / folder gesucht und das Verzeichnis "path" existiert auf meinem Mac nicht. Ich verwende OS X Mavericks Version 10.9.4.

  4. Dann erinnerte ich mich, dass ich Homebrew auf meinem Mac installiert und Folgendes ausgeführt habe:

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

Dies löste schließlich mein Problem. Wenn jemand einen Einblick hat, warum dies funktioniert hat, wäre ein weiterer Einblick sehr dankbar. Ich habe wahrscheinlich noch einige Pfadeinstellungen auf meinem System, die ich letztes Jahr mit Ruby gemacht habe.

Shaun Englisch
quelle
1
Ich hatte git bereits installiert. Als brew install gitich den letzten Schritt befolgte, bekam ich eine Fehlermeldung und es wurde vorgeschlagen, brew upgrade gitstattdessen den Befehl auszuführen . Du bist der Mann! Das hat einfach den Trick gemacht :)
Pathros
15

Ich habe kürzlich den Git auf meinem OS X-Computer auf den neuesten Stand gebracht. Ich habe nicht dasselbe .dmgverwendet, das Sie verwendet haben, aber als ich es installiert habe, wurden die Binärdateien abgelegt /usr/local/bin. Nun, so wie ich PATHes arrangiert habe, /usr/binerscheint das Verzeichnis vorher /usr/local/bin. Also was ich getan habe war:

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

Dadurch werden die verschiedenen Originalprogramme git*in ein neues Unterverzeichnis verschoben, das sie aus dem Weg räumt. Danach wird angezeigt, which gitdass der in /usr/local/bingefunden wurde.

Ändern Sie das obige Verfahren nach Bedarf, um es an die Stelle anzupassen, an der Sie die neuen Binärdateien installiert haben.

Greg Hewgill
quelle
2
Vielen Dank! Eigentlich wurden die neuen Binärdateien abgelegt /usr/local/git.
Nicolas Renon
1
Hinweis: Ich musste Terminal neu starten, um den neuen Git zu sehen. Scheint offensichtlich, hat mich aber zunächst verwirrt.
Migg
15

Wenn Sie Homebrew verwenden, können Sie Sim-Links mit aktualisieren

brew link --overwrite git
rafaecheve
quelle
Ich habe alle anderen Antworten über dieser ausprobiert und dies hat mich schließlich mit der neuesten Version von git ausgestattet. Beim Laufen brew install gitbekam ich die neueste Version, aber der Symlink wurde nicht richtig eingerichtet. Beim Laufen brew link gitgab es einen Fehler, der besagte, dass es kein Symlink-Git geben konnte, da es bereits existierte. endlich rennen brew link --overwrite gitstecke den Nagel in den Sarg und git --versionzeige jetzt , dass ich auf der aktuellsten Version von git
bin
7

Das Installationsprogramm von der Git-Homepage /usr/local/gitwird standardmäßig installiert . Wenn Sie jedoch XCode4 installieren , wird eine Git-Version in installiert /usr/bin. Um sicherzustellen, dass Sie problemlos von der Website aktualisieren und die neueste Git-Version verwenden können, bearbeiten Sie entweder Ihre Profilinformationen, die Sie /usr/local/git/binzuvor /usr/binim $ PATH platziert haben, oder bearbeiten Sie sie /etc/pathsund fügen Sie sie /usr/local/git/binals ersten Eintrag ein.

Es kann jemandem helfen, zumindest die Reihenfolge in / etc / path zu ändern, die für mich gearbeitet hat.

Mohammad Arif
quelle
7

Für mich mit Homebrew 1.6.7hat folgendes funktioniert:

brew upgrade git
Karolis Šarapnickis
quelle
6

Ich habe Folgendes verwendet, um git auf einem Mac zu aktualisieren.

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
Janesh Kodikara
quelle
In meinem Fall hatte ich Git bereits installiert und ich habe es erneut mit Homebrew installiert, das eine neuere Version heruntergeladen hat, aber es war nicht richtig verlinkt. Am Ende musste ich die Verknüpfung manuell aufheben, dann erneut verknüpfen, dann funktionierte es. Ich musste auch meine Terminalsitzung erneut öffnen, damit die neue Version anstelle der älteren / Systemversion gefunden wurde: brew unlink git && brew link git && source ~/.bashrc
FireDragon
5

Der einfachste Weg, den ich bisher gefunden habe, ist von der offiziellen Website von Git. Es wurden nur Abhängigkeiten berechnet und alle erforderlichen Bibliotheken / Tools heruntergeladen

http://git-scm.com/book/en/Getting-Started-Installing-Git

Die andere wichtige Möglichkeit besteht darin, Git über MacPorts ( http://www.macports.org ) zu installieren . Wenn Sie MacPorts installiert haben, installieren Sie Git über

$ sudo port installiere git-core + svn + doc + bash_completion + gitweb

Kiddo
quelle
2

Um beide Versionen beizubehalten, habe ich gerade den Wert der Umgebungsvariablen PATH geändert, indem ich den Git-Pfad der neuen Version "/ usr / local / git / bin /" an den Anfang gesetzt habe. Erzwingt die Verwendung der neuesten Version:

$ echo $ PATH

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

$ git --version

Git Version 2.4.9 (Apple Git-60)

ursprünglicher Wert: / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin: / usr / local / git / bin /

neuer Wert: / 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

Git Version 2.13.0

Sandro E Martínez
quelle
1

Ohne Homebrew

  1. Verwenden Sie das Installationsprogramm von der Website von git.
  2. Aktualisieren Sie Ihre ~/.bash_profileDatei. Beachten Sie, dass sich dieser Befehl von der Antwort von kmikael dadurch unterscheidet, was er in die Datei einfügt:
    • Anderer Befehl: export PATH=/usr/local/git/bin:/usr/local/sbin/:[and so on]
    • Unterer Befehl: export PATH="/usr/local/git/bin:/usr/local/sbin:$PATH"
    • Verwenden Sie das, was Sie bevorzugen.

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

  1. Wenn Sie Xcode verwenden, müssen Sie einige symbolische Links hinzufügen .
    • Beispiel: ln -s /opt/local/bin/git /usr/bin/git
  2. Terminal neu starten.
    • which gitsollte das Verzeichnis in der README.txtDatei aus dem dmg sagen .
    • git --version sollte die aktualisierte Version sagen.
    • echo $PATH sollte mit beginnen /usr/local/git/bin:/usr/local/sbin:
GreeKatrina
quelle
0

Ich ziehe es vor, die Pfadhierarchie nicht zu ändern, sondern mich speziell mit Git zu befassen ... in dem Wissen, dass ich niemals altes Git verwenden werde, um das zu tun, was neues Git jetzt verwalten wird . Dies ist eine Brute-Force-Lösung.

HINWEIS: Ich installierte XCode auf Yosemite (10.10.2) sauber zuerst .

Ich habe dann von der auf git-scm.com verfügbaren Binärdatei installiert .

$ 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)
Azatar
quelle
0

Ich habe es so gemacht:

  1. Öffnen Sie die auf dem Mac installierte GitHub-Anwendung
  2. Klicken Sie auf die Registerkarte Erweitert → Befehlszeilentools installieren
  3. Sobald Sie eine Meldung erhalten, dass alle Befehle installiert wurden, schließen Sie Ihr Terminal und öffnen Sie es erneut.
  4. Überprüfen git --versionSie nun, ob Sie die neueste Version erhalten.
Waaheeda
quelle
0

Sie müssen den Shell-Pfad anpassen. Der Pfad wird entweder in .bashrc oder .bash_profile in Ihrem Home-Verzeichnis festgelegt, wahrscheinlicher in .bash_profile

Fügen Sie also einen Pfad hinzu, der dem folgenden ähnlich ist, und behalten Sie das bei, was Sie bereits im Pfad haben. Jedes Segment ist durch einen Doppelpunkt getrennt:

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

Windy71
quelle
0

Die neueste Version war auf git-scm.com nicht als Binärdatei für Mac verfügbar, daher habe ich sie von der Quelle installiert. Ich habe ein für die Lokalisierung erforderliches Paket vermisst und NO_GETTEXT=truezur Installation ohne Lokalisierung hinzugefügt .

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

Dies installiert, gitunter ~/bindem ich dann am Anfang meiner PATHVariablen hinzufügen musste .

Tmarty
quelle