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


115

Ich habe die neueste Version von Git (1.8.3) mit Homebrew installiert, aber wenn ich tippe

git --version

In meinem Terminal wird Folgendes gedruckt:

git version 1.7.10.2 (Apple Git-33)

Was soll ich tun, um die alte Version von Git durch die neue zu ersetzen?


2
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 nur nach einer Bestätigung, dass OS X mehrere Versionen von Git mit dem Kernbetriebssystem bündelt? opensource.apple.com/source/Git (FWIW - Der neueste Git, den ich bisher bei Apple gesehen habe, ist 1.7.12.4, der von Git-37 stammt)
bmike

Antworten:


105

Vielen Dank an alle für hilfreiche Antworten. In meinem Fall das Hinzufügen

export PATH="/usr/local/bin:${PATH}"

in ~/.bash_profilegefolgt von

source ~/.bash_profile

löste das Problem für meinen Benutzer.


17
Wenn Sie die Änderung persistent über Benutzer möchten, können Sie sich bewegen /usr/local/binoben /usr/binin /etc/paths.
Kevin

3
Dies ist die von Homebrew selbst vorgeschlagene Lösung brew doctorfür die Diagnose des Problems
VoxPelli,

1
Diese Antwort sollte mit der von KevinT vorgeschlagenen Definitionslösung aktualisiert werden /etc/paths. Es reicht möglicherweise nicht aus, nur den "Export" zu definieren, wenn /usr/bin"Vorrang" vor /usr/local/bin(vom Brauen) ...
emgsilva

8
Denken Sie daran, das Terminal neu zu starten! Fiel mir erst ein, als ich Juan Diego Gonzales 'Kommentar unten sah
Souleiman,

2
@Souleiman: Neustart ist nicht erforderlich. source ~/.bash_profilewerde das nochmal lesen. Ein Neustart ist wahrscheinlich schneller / einfacher. :)

43

Ok, ich bin bereit, mich ernsthaft mit SCM zu befassen.

$ git --version
git version 1.9.5 (Apple Git-50.3)

Nein, das wollte ich nicht. I <3 Homebrew, also:

$ brew install git

Alles bereit?

$ git --version
git version 1.9.5 (Apple Git-50.3)

Doh! (Kratzer am Kopf)

$ which git
/usr/bin/git

Ah, Apples Trottel ist in / usr / bin, also übertrumpft er den Homebrew-Trottel. Was ist zu tun?

(A) Benennen Sie einfach Apples Binärdatei um

(B) Lassen Sie Homebrew-Managed einen Vorrang haben:

[PATH-Export bearbeiten, zB in ~ / .zshrc (oh-my-zsh + iTerm2 FTW! / tangent)]

[speziell: move / usr / local / bin / git: before / usr / bin:]

... und / oder (z. B. um Homebrew-Trumpf-System installieren zu lassen und den Vorrang für alle Shells und Benutzer zu haben) bearbeiten Sie auch die Datei / etc / path, [moving / usr / local / bin above / usr / bin ]

Nehmen wir jedoch nur den einfachsten / am wenigsten invasiven Ansatz an:

$ 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 ! :)


PS Rel zu Kommentaren über Risiken der Bearbeitung / usr / bin: IMHO ist es NBD. (Ich mag den Vorschlag von Global Nomad, "sudo ln -s / usr / local / bin / git / usr / bin / git" zu tun ... was sicherstellt, dass alles, was "/ usr / bin / git" aufruft, explizit wird Meiner Meinung nach bedeutet die Installation von git, dass Sie den Besitz von git auf Ihrem System übernehmen. Bedenken über unbekannte Prozesse, die eine ältere, alternative Version von git verwenden, könnten fehl am Platz sein. Ich empfehle, auf dem neuesten Stand zu bleiben. Git-Versionen (für Sicherheit, nicht nur Funktionen) und die Verwaltung selbst. Homebrew macht das einfach. /$0.02
wöchentlich

Das hat bei mir nicht geklappt, mach es einfach rückgängig: sudo mv / usr / bin / git-apple / usr / bin / git. Juan Diego Gonzales Kommentar hat funktioniert. (Befolgen Sie im Grunde die akzeptierte Antwort und starten Sie das Terminal neu.)
Souleiman

Selbst mit dem which gitHinweis darauf /usr/local/bin/githat das bei mir nicht funktioniert. Um dies zu lösen, musste ich die GitHub Mac App deinstallieren.
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


32

Stand 2019

Alle hier in mehreren Antworten genannten Tricks sind auf macOS Sierra & Mojave mit neuestem Homebrew nicht mehr nötig. Vergessen Sie export PATH="..."und Änderungen an ~/.bash_profile.

Das machst du einfach

brew install git

und du bist fertig.

Öffnen Sie zur Bestätigung ein neues (!) Terminalfenster und geben Sie ein

git --version

16
Ich denke, das ist richtig, aber Sie müssen ein neues Terminal eröffnen oder das Wechselgeld wird nicht abgeholt
robjwilkins

Das funktioniert bei mir leider nicht.
rsp1984

2
Dies funktionierte für mich auf Mojave. Ich musste ein neues Terminal eröffnen.
Craig Otis

2
brew link --overwrite gitarbeitete für mich
wickdninja

9

Sobald Sie den neuesten Git über brew ( brew install git) installiert haben , starten Sie diesen Einzeiler (wie von vorgeschlagen brew doctor), falls er noch nicht vorhanden ist:

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

Beenden Sie dann Terminal und öffnen Sie es erneut (starten Sie Ihre 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).

Das sollte wirklich schnell gehen.


1
Wie unterscheidet sich dies von der akzeptierten Antwort?
user151019

6
In meinem Fall wusste ich nicht, dass ich Terminal neu starten muss, damit dieser Teil einigen Leuten helfen kann. Ist schneller als der angenommene, weil der eine Liner. 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 Bearbeitung vornehmen soll.)
Juan Diego Gonzales

Sie machen diesen einen Liner, wenn Sie Homebrew
user151019 am

7
Ich fand diese Antwort hilfreich. Ein 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.
Magne

@ JuanDiegoGonzales Ausgezeichnete Beobachtung! Nachdem ich git installiert hatte, fragte ich mich genau dasselbe und wusste nicht warum. Nach dem Cache- Hinweis habe ich ein bisschen mehr recherchiert: unix.stackexchange.com/q/5609/52921
kstratis

4

Wenn Sie tippen

git --version

In Terminal.app oder der Konsole hat Ihr Kommentar zu einer anderen Frage angegeben, dass die zurückgegebene Version der Git in / usr / bin / git ist

Wenn Sie Xcode 4.5 (und neuer) installiert haben, geben Sie Folgendes ein

xcrun git --version

In Terminal.app oder Konsole ist die zurückgegebene Version der Git im Xcode-App-Bundle.

Wenn Sie Homebrew verwenden, um git zu installieren und zu aktualisieren, ist dies die einfachste Lösung

  1. Stellen Sie sicher, dass Sie über Administratorrechte verfügen, da Sie nach dem Kennwort für den Administrator gefragt werden
  2. Benennen Sie den ursprünglichen Speicherort um, indem Sie ihn mit mv umbenennen. Zum Beispiel

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

  3. Erstellen Sie eine weiche Verknüpfung mit 'ln -s' zu der Git-Binärdatei, die Sie mit Homebrew installiert haben.

Beachten Sie, dass MattDMo in den Kommentaren eine bessere Lösung hat.


Ist das 100% sicher? Wird es irgendetwas kaputt machen, was mit Mac zu tun hat?
Levani

Wenn Sie die beschriebenen Schritte ausführen, wird die Lösung nichts vorinstalliertes beschädigen, da diese ausführbaren Dateien für Git nicht gelöscht werden. Aus diesem Grund sollten Sie in Schritt 2 Ihr Original / usr / bin / git umbenennen, z. B. als /usr/bin/git.BACKUP
Global nomad

10
Bitte tun Sie dies nicht - Sie sollten wirklich nicht herumspielen /usr/bin, da es möglich ist, dass andere Programme, die Sie nicht einmal kennen, von Unwägbarkeiten abhängen, die mit einer bestimmten Version verknüpft sind. Die einfachste Lösung, ohne etwas zu verschieben, besteht darin /usr/local/bin, die $PATHUmgebungsvariable vor der /usr/binInstallation von/usr/local/bin
IIRC

Danke @MattDMo, das scheint in diesem Fall der beste Ansatz zu sein.
Levani

2

Ich habe es versucht und es funktioniert für mich.

brew link --overwrite git

Arbeitete für mich auf Mojave (10.14.4)
gepfeffert

1

Sie müssen das ursprüngliche Git von apple in /usr/bin/zB git-org umbenennen, da /usr/bines sich normalerweise vorher /usr/local/binin Ihrem Pfadverzeichnis befindet, in dem sich das Brauzeug befindet.

Damit:

cd /usr/bin
sudo mv git git-org

und vergessen Sie nicht, den Brühgit zu verbinden

brew link git

Dies setzt voraus, dass /usr/local/bines sich um eine $PATHUmgebungsvariable handelt. Wenn Sie immer noch Probleme haben, versuchen Sie zu laufen

brew doctor 

und beheben Sie die dort genannten Probleme.


3
Benennen oder verändern Sie keine Dinge in / usr / bin, da dies Apple-Thigs beschädigen könnte und sie beschädigt werden, wenn Sie ein System- oder XCode-Update durchführen. Verwenden Sie den Pfad, für den er bestimmt ist.
user151019

@Mark du hast einen Punkt. Aber ich glaube nicht, dass Sie Probleme bekommen, wenn Sie nur git in / usr / bin ändern. Bei mir funktioniert es seit mehreren Monaten.
Pfitz

Ich würde zustimmen, dass das Ändern von Dingen in / usr / bin normalerweise eine schlechte Nachricht ist, aber ich kann mich nicht daran erinnern, dass OS X tatsächlich git verwendet. Der Schaden könnte also winzig sein und sich nur auf ein "sauberes" System beziehen, das mit den Belegen übereinstimmt. Ein Update auf OS X könnte das neue Git durch eine ältere Version ersetzen. Daher ist es üblich, eine neue Binärdatei außerhalb des Systempfads zu finden.
bmike

3
Ich denke , es wäre viel einfacher hinzufügen /usr/local/bin(Homebrew das Verzeichnis installieren, IIRC) an dem $PATHvor /usr/binstatt herumschlagen mit Umbenennung und Sichern usw.
MattDMo

1

Installiere git mit brew, das lass dies laufen.

brew link --force git

Schließen Sie das Terminal und öffnen Sie es erneut, um es auszuführen which git.


1
Wie ändert sich dadurch der Standardpfad?
user151019

Dies funktionierte für mich, um den Git von xcode zu überschreiben.
Surjikal

Beim Ausführen ist mir ein Fehler unterlaufen, aber es hat brew link --overwrite gitfunktioniert
wickdninja 20.02. Um

0

Wenn Sie git direkt von git-scm.com installieren und statt der (alten) Apple-Version von git die neueste heruntergeladene Version verwenden möchten.

  1. Installieren Sie git von git-scm.com
  2. Höchstwahrscheinlich wird ein neuer Git in installiert /usr/local/bin/git
  3. Versuchen Sie git --version, wenn es Apple alte Version von Git zurückgibt, dann fahren Sie unten fort
  4. cd ~ (Wechseln Sie in Ihr Home-Verzeichnis)
  5. Art vi .bashrc
  6. Verwenden Sie i(um Text in den vi-Editor einzufügen)
  7. Wenn Sie eine Linie mit finden export PATH......., drücken Sie oben auf dem Export eingeben und geben Sie die folgenden: export PATH=/usr/local/:$PATH(Pay äußerste Vorsicht mit PATHvariablen Durcheinander nicht es auf sonst wird es Probleme für Ihr Betriebssystem verursachen) (hoffentlich neue git installiert werden soll /usr/local/git)
  8. Drücken Sie die Esc-Taste
  9. Enter :wq(um die .bashrcDatei zu speichern )
  10. Verlassen Sie das Terminal und starten Sie ein neues Terminal
  11. Versuchen git --versionSie es jetzt (Sie sollten eine neue Version sehen)

-1

Es kommt darauf an, woher dein Schwachkopf kommt. Xcode bringt zum Beispiel eine Version mit, die Ihnen vielleicht im Weg steht.

Vielleicht tippen

which git

wird zeigen, wo der alte ist.


es ist in /usr/bin/git...
Levani

2
Das sieht nach zwei Installationen aus. Ich denke, die normale (herunterladbare) Git-Version geht zu / usr / local / git / ... Es ist dann eine Frage des Hinzufügens dieses zum Pfad oder des Entfernens des anderen (oder beider)
Nicholaz

-2

Wenn Sie ein Upgrade mit Homebrew unter OSX durchführen möchten, bei dem das Kompilieren mit gcc erforderlich ist, müssen Sie die aktualisierten Befehlszeilentools von Xcode installieren. Ja, ich weiß, es ist schade, wenn Sie ein systemweites Tool in den Einstellungen einer App verstecken müssen.

Schritte

  1. Gehen Sie zu Xcode.app -> Einstellungen -> Downloads
  2. Aktualisieren (oder installieren) Sie die Befehlszeilentools
  3. Führen Sie brew doctoralle anderen Hindernisse aus und beheben Sie sie
  4. Führen Sie dies aus brew upgrade, um alle Pakete gleichzeitig zu aktualisieren
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.