Wie aktualisiere ich Git (entferne eigentlich Apple Git und installiere neues via Brew)?

1

Ich möchte Git aktualisieren. Ich finde diesen Artikel:

Bei einem der ersten Schritte bekomme ich ein Problem. Als ich versucht habe, das aktuell installierte Git zu sichern, habe ich eine Berechtigungsbeschränkung erhalten. Es ist in Ordnung, es muss eine Einschränkung des OSX-Systems sein.

Ich habe PATH überprüft und festgestellt, dass /usr/bines danach ist /usr/local/bin. Wenn ich also nur eine neue Version von git via brew installiere, wird diese Version verwendet (da brew alles installiert /usr/local/bin. Ich habe das getan und das Ergebnis hat mich frustriert. Altes git wird verwendet anstatt via brew installiert. Warum?

Hier ist eine Ausgabe:

svlad at sharikovvlad in ~/sandbox/git-test on master [+]
$ git --version
git version 2.11.0 (Apple Git-81)

svlad at sharikovvlad in ~/sandbox/git-test on master [+]
$ which git
/usr/local/bin/git

svlad at sharikovvlad in ~/sandbox/git-test on master [+]
$ ls -al /usr/local/bin/git | grep git
lrwxr-xr-x  1 svlad  admin  28 Sep  3 18:16 /usr/local/bin/git -> ../Cellar/git/2.14.1/bin/git

svlad at sharikovvlad in ~/sandbox/git-test on master [+]
$ /usr/local/Cellar/git/2.14.1/bin/git --version
git version 2.14.1

svlad at sharikovvlad in ~/sandbox/git-test on master [+]
$ echo $PATH
/Users/svlad/bin:/usr/local/opt/gnupg@1.4/libexec/gpgbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Frameworks/Mono.framework/Versions/Current/Commands
$

Also, warum Apfelgit verwendet? /usr/local/binist zuerst in Pfad, so dass Symlink aus diesem Ordner verwendet werden muss? Also, warum bekomme ich alte Version?

Auch irgendwelche Gedanken, wie kann ich Apfelgit entfernen?

Sharikov Vladislav
quelle
1
"Bei einem der ersten Schritte ist ein Problem aufgetreten. Als ich versucht habe, ein Backup des aktuell installierten Git zu erstellen, habe ich eine Einschränkung der Berechtigungen erhalten. Es ist in Ordnung, dass es sich um eine OSX-Systemeinschränkung handelt." Ja, es wird als Systemintegritätsschutz bezeichnet und verhindert, dass Sie bestimmte Systemdateien ändern, einschließlich der Dateien in / usr / bin. Sie können SIP einfach deaktivieren und / usr / bin / git löschen oder ersetzen - obwohl das wirklich keine gute Lösung ist.
Wowfunhappy
Haben Sie ein neues Terminal ausprobiert oder neu gestartet, seitdem Sie den Homebrew-Git installiert haben?
Mark
@Wowfunhappy Hallo! Danke für Ihre Antwort! Ja, es ist überhaupt keine gute Lösung.
Sharikov Vladislav
@ Mark Ja, ich habe den Mac nach der Installation von Homebrew viele Male neu gestartet.
Sharikov Vladislav
Eigentlich ist nicht die Frage, warum ich nicht entfernen kann. Die Hauptfrage ist, warum OS Git /usr/binstatt wählen /usr/local/bin? localdir ist auf der linken Seite und wie ich weiß, versuchen Macos, Befehle in jedem Verzeichnis in PATH zu finden, und das geht von links nach rechts. Also /usr/local/binsollte zuerst das Problem gelöst werden. Warum /usr/binwird dann git from verwendet?
Sharikov Vladislav

Antworten:

1

Sie können versuchen, nur CLI-Tools zu entfernen. Dies ist das, was mit Apple git geliefert wird, und dies kann Ihr Problem lösen.

Entfernung der CLI-Tools

Wenn dies nicht der Fall ist, bedeutet dies, dass die CLI-Tools getrennt von Xcode heruntergeladen wurden und Sie versuchen können, sie zu entfernen:

sudo rm -rf /Library/Developer/CommandLineTools

Sobald dies erledigt ist, überprüfen Sie einfach, ob es entfernt wurde, und installieren Sie es erneut mit Homebrew. Hoffe das könnte helfen.

Don Escobar
quelle
Eigentlich halte ich es nicht für eine gute Idee, etwas aus der Verpackung zu entfernen. Hauptfrage ist, warum Git von usr/binverwendet wird, nicht von /usr/local/bin: apple.stackexchange.com/questions/297286/…
Vladislav