Wie verwende ich den auf Homebrew installierten Git auf einem Mac?

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 

Bitte vergessen Sie nicht, ein neues Fenster zu öffnen. Terminals, die geöffnet waren, bevor Sie mit 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.

  1. Benennen Sie den ursprünglichen Speicherort um, indem Sie ihn mit mv umbenennen. Zum Beispiel

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

  2. 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.

  1. Installieren Sie git von git-scm .com
  2. Höchstwahrscheinlich wird ein neues Git in /usr/local/bin/git
  3. installiert. Versuchen Sie es mit git --version. Wenn die alte Apple-Version von git zurückgegeben wird, gehen Sie wie folgt vor:
  4. cd ~ (Verzeichnis in Ihr Home-Verzeichnis ändern)
  5. Geben Sie vi .bashrc
  6. Verwenden Sie i (um Text in den vi-Editor einzufügen)
  7. 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 Variablen PATH, bringen Sie es nicht durcheinander, da es sonst Probleme für Ihr Betriebssystem verursacht) (hoffentlich neues git sollte in /usr/local/git)
  8. Drücken Sie esc
  9. Geben Sie :wq (to Speichern Sie die Datei .bashrc)
  10. Verlassen Sie das Terminal und starten Sie das neue Terminal
  11. 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)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.