Ich habe die neueste Version von git (1.8.3) mit Homebrew installiert, aber wenn ich
git --version
In meinem Terminal wird Folgendes ausgegeben:
git version 1.7.10.2 (Apple Git-33)
Was kann ich tun, um die alte Version von git durch die neue zu ersetzen?
Kommentare
- Sie haben ein paar gute Antworten – deshalb wollte ich die Frage kommentieren. Suchen Sie nach expliziten Anweisungen zum Installieren von Git aus dem Quellcode von Homebrew oder einem GUI-Client oder nach einer Bestätigung, dass OS X mehrere Versionen von Git mit dem Kernbetriebssystem bündelt? opensource.apple.com/source/Git (FWIW – Das neueste Git, das ich ‚ bisher gesehen habe ist 1.7.12.4, was von Git-37 stammt)
Antwort
Vielen Dank an alle für hilfreiche Antworten. In meinem Fall wird
export PATH="/usr/local/bin:${PATH}"
in ~/.bash_profile
hinzugefügt, gefolgt von
source ~/.bash_profile
hat das Problem für meinen Benutzer gelöst.
Kommentare
- Wenn die Änderung für alle Benutzer dauerhaft sein soll, können Sie
/usr/local/bin
über/usr/bin
in/etc/paths
. - Dies ist die vorgeschlagene Lösung von Homebrew selbst beim Ausführen von
brew doctor
zur Diagnose des Problems - Diese Antwort sollte mit der von KevinT vorgeschlagenen Lösung zur Definition von
/etc/paths
. Es reicht möglicherweise nicht aus, nur den “ Export “ zu definieren, wenn/usr/bin
“ Vorrang “ vor/usr/local/bin
(vom Gebräu) … - Denken Sie daran Terminal neu starten! ‚ ist mir erst in den Sinn gekommen, als ich Juan Diego Gonzales ‚ s Kommentar unten
- @Souleiman: Neustart isn ‚ nicht erforderlich.
source ~/.bash_profile
liest das erneut. Ein Neustart ist wahrscheinlich schneller / einfacher. 🙂
Antwort
Status 2020
Alle hier genannten Tricks in mehreren Antworten sind unter macOS Sierra, Mojave & Catalina mit dem neuesten Homebrew nicht mehr erforderlich. Vergessen Sie export PATH="..."
und Änderungen an ~/.bash_profile
.
Sie tun einfach
brew install git
und Sie sind fertig.
Öffnen Sie zur Bestätigung ein neues Terminalfenster / eine neue Registerkarte und geben Sie
git --version
install
begonnen haben, erben keine Änderungen.
Antwort
Ok, ich bin bereit, mich ernsthaft mit scm zu beschäftigen.
$ git --version git version 1.9.5 (Apple Git-50.3)
Nein, das wollte ich nicht. I < 3 Homebrew, also:
$ brew install git
Alles eingestellt?
$ git --version git version 1.9.5 (Apple Git-50.3)
Doh! (kratzt sich am Kopf)
$ which git /usr/bin/git
Ah, Apples Git befindet sich in / usr / bin, also übertrumpft es den Homebrew. Was tun?
(A) Benennen Sie einfach Apples Binärdatei um.
(B) Lassen Sie Homebrew-verwaltete Vorrang haben:
[PATH-Export bearbeiten, z in ~ / .zshrc (oh-my-zsh + iTerm2 FTW! / tangent)]
[speziell: move / usr / local / bin / git: vor / usr / bin:]
… und / oder (z. B. um das Homebrew-Material besser installieren zu lassen und den Vorrang für alle Shells und Benutzer zu haben) bearbeiten Sie auch die Datei / etc / path, [move / usr / local / bin oben / usr / bin]
Aber unter der Annahme des einfachsten / am wenigsten invasiven Ansatzes:
$ sudo mv /usr/bin/git /usr/bin/git-apple
Hat es funktioniert?
$ which git /usr/local/bin/git
So weit so gut, jetzt der Moment der Wahrheit:
$ git --version git version 2.2.1
w00t! 🙂 Zeit zum Lesen http://git-scm.com ! 🙂
Kommentare
- PS Bezieht sich auf Kommentare zu den Risiken der Bearbeitung von / usr / bin: IMHO it ‚ s NBD. (Ich mag den Vorschlag von Global nomad ‚, “ sudo ln -s / usr / local / bin / git / usr zu tun / bin / git “ … wodurch sichergestellt wird, dass alles, was “ / usr / bin / git “ wird explizit Ihr von Brew verwaltetes erhalten. Meiner Meinung nach bedeutet die Installation von Git, dass Sie ‚ das Eigentum an git auf Ihrem System übernehmen. Sorgen über unbekannte Prozesse mit einem älteren Ich empfehle, die aktuelle Version von Git (aus Sicherheitsgründen, nicht nur Funktionen) auf dem neuesten Stand zu halten und selbst zu verwalten. Homebrew macht dies einfach. /$0.02
- Dies war nicht der Fall ‚ funktioniert nicht für mich, um es rückgängig zu machen, machen Sie einfach: sudo mv / usr / bin / git-apple / usr / bin / git. Juan Diego Gonzales hat funktioniert (folgen Sie im Grunde der akzeptierten Antwort und starten Sie das Terminal neu).
- Selbst wenn
which git
auf/usr/local/bin/git
zeigt, war dies nicht ‚ Ich arbeite nicht für mich. Um dies zu lösen, musste ich die GitHub Mac-App deinstallieren. - 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
- Verwenden Sie einfach
brew doctor
. Im Jahr 2020 wurde empfohlen,brew link —overwrite git
zu beantworten
„Nachdem Sie das neueste Git über Brew installiert haben (brew install git
), führen Sie diesen Einzeiler aus (wie von brew doctor
vorgeschlagen), wenn dies nicht der Fall ist bereits vorhanden:
echo "export PATH=/usr/local/bin:$PATH" >> ~/.bash_profile
Beenden Sie dann das Terminal und öffnen Sie es erneut (starte deine Bash-Sitzung neu). Sie müssen dies auch dann tun, wenn Ihr PATH bereits korrekt war, da ZSH und Bash den Inhalt von PATH zwischenspeichern (siehe Dokumentation zum integrierten Befehl hash
).
Damit sollten die Probleme sehr schnell behoben werden.
Kommentare
- Wie unterscheidet sich dies von der akzeptierten Antwort?
- In In meinem Fall wusste ich ‚ nicht, dass ich Terminal neu starten musste, damit dieser Teil einigen Leuten helfen kann. Ist schneller als der akzeptierte wegen des einen Liners. Wenn es ‚ ein Wettbewerb ist, denke ich, dass meine Antwort falsch ist. Ansonsten denke ich, dass es dazu beiträgt. (Sagen Sie mir, ob ich stattdessen eine Änderung vornehmen soll.)
- Sie machen diesen einen Liner, wenn Sie Homebrew installieren.
- Ich fand diese Antwort hilfreich. Der Neustart des Terminals ist für viele Personen, die mit der Funktionsweise von .bash_profile nicht vertraut sind, ein nicht offensichtliches Problem und eine sanfte Erinnerung für den Rest von uns.
- @JuanDiegoGonzales Hervorragende Beobachtung! Ich habe mich genau das Gleiche gefragt, nachdem ich git installiert hatte und ‚ nicht wusste warum. Nach dem Cache Hinweis habe ich etwas mehr recherchiert: unix.stackexchange.com/q/5609/52921
Antwort
Ich habe es versucht und es funktioniert für mich.
brew link --overwrite git
Kommentare
- Arbeitete für mich an Mojave (10.14.4)
Antwort
Wenn Sie
git --version
in Terminal.app oder Konsole eingeben, zeigt Ihr Kommentar zu einer anderen Frage die Version an Rückgabe ist das Git in / usr / bin / git
Wenn Sie Xcode 4.5 (und neuer) installiert haben und
xcrun git --version
in eingeben Terminal.app oder Konsole, die Version, die zurückgegeben wird, ist das Git im Xcode-App-Bundle.
Wenn Sie Homebrew zum Installieren und Aktualisieren von Git verwenden, ist
- ie einfachste Lösung Stellen Sie sicher, dass Sie über Administratorrechte verfügen, da Sie nach dem Kennwort für den Administrator gefragt werden.
-
Benennen Sie den ursprünglichen Speicherort um, indem Sie ihn mit mv umbenennen. Zum Beispiel
sudo mv / usr / bin / git / usr / bin / git-ORIGINAL
-
Erstellen Sie mit „ln -s“ einen Softlink zu der mit Homebrew installierten Git-Binärdatei
Beachten Sie, dass MattDMo in den Kommentaren eine bessere Lösung hat.
Kommentare
- Ist das 100% sicher? Wird irgendetwas mit dem Mac zu tun haben?
- Wenn Sie die beschriebenen Schritte ausführen, wird die Lösung ‚ nichts vorinstalliertes kaputt machen, da diese ausführbaren Git-Dateien nicht gelöscht werden. Aus diesem Grund sollten Sie in Schritt 2 Ihr Original / usr / bin / git umbenennen, z. as /usr/bin/git.BACKUP
- Bitte tun Sie dies nicht ‚ – Sie sollten wirklich nicht ‚ t Spielen Sie mit
/usr/bin
herum, da es ‚ möglich ist, dass andere Programme, die Sie nicht ‚ verwenden Ich weiß nicht einmal, was von Launen abhängt, die mit einer bestimmten Version verbunden sind. Die einfachste Lösung, ohne etwas zu verschieben, besteht darin,/usr/local/bin
zu Ihrer$PATH
-Umgebungsvariablen vor/usr/bin
– IIRC, Homebrew wird auf/usr/local/bin
- installiert. Vielen Dank an @MattDMo, dies scheint in diesem Fall der beste Ansatz zu sein.
Antwort
Installieren Sie git mit Brew, führen Sie dies aus.
brew link --force git
Schließen Sie das Terminal und öffnen Sie es erneut, um which git
auszuführen.
Kommentare
- Wie ändert sich dadurch der Standardpfad?
- Dies hat bei mir funktioniert, um das git von xcode ‚ zu überschreiben.
- Beim Ausführen ist ein Fehler aufgetreten Dies aber
brew link --overwrite git
hat funktioniert
Antwort
Sie müssen umbenennen der ursprüngliche Git von Apple in /usr/bin/
bis e. G. git-org da /usr/bin
normalerweise vor /usr/local/bin
in Ihrem Pfadverzeichnis steht, in dem sich das Brauzeug befindet.
Also:
cd /usr/bin sudo mv git git-org
und vergessen Sie nicht, den Brühgit zu verknüpfen
brew link git
Dies setzt dies voraus /usr/local/bin
befindet sich in Ihrer Umgebungsvariablen $PATH
.Wenn Sie immer noch Probleme haben, versuchen Sie,
brew doctor
auszuführen und die dort genannten Probleme zu beheben.
Kommentare
- Benennen oder ändern Sie keine Dinge in / usr / bin, da dies Apple-Thigs beschädigen könnte und sie bei einem System- oder XCode-Update beschädigt werden. Verwenden Sie den Pfad, für den es entwickelt wurde.
- @Mark Sie haben einen Punkt. Aber ich glaube nicht, dass Sie Probleme bekommen werden, wenn Sie nur git in / usr / bin ändern. Für mich funktioniert es mehrere Monate.
- Ich würde zustimmen, dass das Ändern von Dingen in / usr / bin normalerweise eine schlechte Nachricht ist, aber ich kann ‚ das Betriebssystem nicht zurückrufen X verwendet tatsächlich git, daher kann der Schaden dort winzig sein und sich nur auf ein “ sauberes “ System beziehen, das mit den Belegen übereinstimmt. Der Schaden wäre, dass ein Update auf OS X das neue Git durch eine ältere Version ersetzen könnte, daher ist es üblich, eine neue Binärdatei außerhalb des Systempfadorts zu lokalisieren.
- Ich denke, es wäre viel einfacher, sie hinzuzufügen
/usr/local/bin
(Homebrew ‚ Installationsverzeichnis, IIRC) in das$PATH
vor/usr/bin
anstatt mit Umbenennen und Sichern usw. herumzuspielen.
Antwort
Wenn Sie git direkt von git-scm.com installieren und das neueste heruntergeladene git anstelle der (alten) Apple-Version von git verwenden möchten.
- Installieren Sie git von git-scm .com
- Höchstwahrscheinlich wird ein neues Git in
/usr/local/bin/git
- installiert. Versuchen Sie es mit
git --version
. Wenn die alte Apple-Version von git zurückgegeben wird, gehen Sie wie folgt vor: -
cd ~
(Verzeichnis in Ihr Home-Verzeichnis ändern) - Geben Sie
vi .bashrc
- Verwenden Sie
i
(um Text in den vi-Editor einzufügen) - Wenn Sie eine Zeile mit
export PATH.......
finden, drücken Sie die Eingabetaste über dem Export und Geben Sie Folgendes ein:export PATH=/usr/local/:$PATH
(Seien Sie äußerst vorsichtig mit der VariablenPATH
, bringen Sie es nicht durcheinander, da es sonst Probleme für Ihr Betriebssystem verursacht) (hoffentlich neues git sollte in/usr/local/git
) - Drücken Sie esc
- Geben Sie
:wq
(to Speichern Sie die Datei.bashrc
) - Verlassen Sie das Terminal und starten Sie das neue Terminal
- Versuchen Sie nun
git --version
(Sie sollten eine neue Version sehen)
Antwort
Führen Sie einen einfachen Alias aus, um eine Änderung des Pfads zu vermeiden:
alias git=/usr/local/bin/git
Antwort
Ich habe viele Dinge ausprobiert, einschließlich des gesamten Beitrags. s Antworten. Schließlich konnte ich die Version von git von Brew anstelle von Xcode ausführen, indem ich einfach den zusätzlichen Tools-Ordner von Xcode löschte:
sudo rm -rf /Library/Developer/CommandLineTools
Antwort
Wenn Sie brew install git
für die Installation verwenden, beachten Sie, dass git
unter:
==> Summary 🍺 /usr/local/Cellar/git/2.29.2: 1,480 files, 39.7MB
Sie werden Außerdem wird ein Fehler angezeigt, der früher im Protokoll angezeigt wird und den Sie wahrscheinlich verpasst haben:
==> Downloading https://homebrew.bintray.com/bottles/git-2.29.2.big_sur.bottle.t Already downloaded: /Users/chadjinik/Library/Caches/Homebrew/downloads/08165d120fcebc7823c487a6778b2ea0e67fd2cd9177d6e7d656268f474ab5da--git-2.29.2.big_sur.bottle.tar.gz ==> Pouring git-2.29.2.big_sur.bottle.tar.gz Error: The `brew link` step did not complete successfully The formula built, but is not symlinked into /usr/local 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
Führen Sie einfach Folgendes aus:
brew link --overwrite git
und Sie sollten gut sein.
Antwort
Es hängt davon ab, woher Ihr Git kommt. Xcode bringt beispielsweise eine Version mit, die möglicherweise im Voraus auf Ihrem Weg ist.
Wenn Sie möglicherweise
which git
eingeben, wird angezeigt, wo sich die alte befindet.
Kommentare
- es ‚ ist in
/usr/bin/git
… - Das sieht aus wie zwei Installationen. Ich denke, die normale (herunterladbare) Git-Version geht zu / usr / local / git / … Es ‚ ist dann eine Frage des Hinzufügens zum Pfad oder des Entfernens der anderen (oder beide)