Woher kommt / usr / bin / git?

24

Ich habe ein kleines Problem. Irgendwann habe ich git verwendet, aber ich erinnere mich nicht, ob es standardmäßig auf Lion installiert war.

Hier ist die Version und der Pfad von Git:

$ git --version
git version 1.7.5.4
$ which git
/usr/bin/git

Ich habe auch einen neueren Git in / usr / local / git

Ich möchte die neuere Version verwenden, weiß aber nicht, ob ich durch Entfernen der alten Version (/ usr / bin hat Vorrang in der Pfadvariablen) etwas kaputt machen werde.

Was ist der richtige Weg, um diesen Konflikt zu lösen?

cromestant
quelle
9
Git wird von Xcode installiert. Ich kann dir allerdings nicht sagen, ob es irgendetwas kaputt macht. In Ihren Schuhen würde ich es umbenennen, falls ich es später zurückstellen muss.
Steven Fisher
ah ok..Na ja, ich werde einfach die neue Installation von git2 oder so umbenennen und sie so verwenden.
Cromestant
Ich wollte die alte umbenennen, anstatt sie zu entfernen. Auf diese Weise können Sie Probleme einfach wieder umbenennen.
Steven Fisher
1
@StevenFisher du solltest das eine Antwort machen. :)
Ian C.
OKAY. Ich hatte gehofft, jemand würde eine echte Antwort haben, die kein "Ich weiß nicht!" drin. :)
Steven Fisher

Antworten:

26

Git wird von Xcode installiert. Ich bezweifle, dass Sie Probleme haben werden, wenn Sie es ersetzen, aber darauf kann ich Ihnen keine endgültige Antwort geben ...

  1. Ich benenne die alte /usr/bin/gitin um git_oldund verlasse mich dann auf Ihren Pfad, um die neue auszuwählen.
  2. Wenn das nicht funktioniert , verschieben Sie die neue nach /usr/bin. Ich bezweifle, dass Xcode wählerisch ist, welche Version von Git es verwendet.
  3. Wenn dies immer noch nicht funktioniert , gehen Sie git_oldzurück zu /usr/bin/gitund verwenden Sie entweder einen direkten Pfad, einen Umbenennungspfad oder einen Alias ​​für Ihren neuen.

Ich bezweifle, dass Sie über Nummer 1 hinausgehen müssen. Das sollte genug sein.

Edit: Ich habe deinen Originalbeitrag rückwärts gelesen. Stellen Sie zunächst sicher, dass Ihr Pfad das neue Git-Verzeichnis enthält, BEVOR das Verzeichnis, das das alte Git enthält.

Steven Fisher
quelle
3 Alternativen: Bestätigung, dass die erste gut funktioniert hat.
Marius Butuc
9

Sie müssen nicht die andere Version raushacken, es sei denn, Sie haben wirklich wenig Platz. Bearbeiten Sie Ihr .bash_profile und stellen Sie sicher, dass / usr / local / bin in Ihrer PATH-Variablen vor / usr / bin steht

Persönlich bevorzuge ich ein Schema mit definierten Werkzeugpfaden und dem daraus aufgebauten Pfad, z

GIT_HOME=/usr/local

PATH=${GIT_HOME}/bin:${PATH};export PATH
MANPATH=${GIT_HOME}/share/man:${MANPATH};export MANPATH

Dies bedeutet, dass alles, was mit PATH nach Werkzeugen sucht, Ihre Version von git findet, und alles, was wirklich die / usr / bin-Version haben muss, höchstwahrscheinlich diesen Pfad fest verdrahtet hat und ihn immer noch finden kann

Kevin
quelle
6

Ich hatte das gleiche Problem: eine alte Version von Git, die die Xcode-Version war. Ich habe versucht, eine neue Version von Git von http://git-scm.com/ zu installieren und das bash_profilemit aktualisiert

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

Laden Sie dann Ihre Bash neu und versuchen Sie es git --version

Arbeitete für mich :)

Davidmatas
quelle
1

Auf meinem System (10.7.3, Xcode 4.3.2) gitist kein Xcode installiert /usr/bin/git. Alles von Xcode 4 (wie alle Apps aus dem App Store, glaube ich) ist in seinem .app-Bundle enthalten. Insbesondere ist sein Git bei /Applications/Xcode.app/Contents/Developer/usr/bin/git.

Ich benutze Git (via Xcode) die ganze Zeit, und ich habe überhaupt keine /usr/bin/githier. Es ist also nicht Teil der Lion-Standardinstallation oder zumindest nicht an diesem Ort.

FWIW, der Git im Xcode.app-Bundle hat Folgendes --version:

Git Version 1.7.7.5 (Apple Git-26)

Ich wette, es /usr/bin/gitist Ihre eigene Installation, und ein Update kann nichts anrichten.

Alternativ kannst du Xcode installieren (es ist kostenlos!) Und /Applications/Xcode.app/Contents/Developer/usr/bin/deinen $ PATH eingeben, aber das ist übertrieben, wenn du nur Git willst.

Ken
quelle
Ich habe auch xcode, also habe ich drei Versionen von Git derzeit installiert ... nice find!
Cromestant
1
Wenn nicht, haben /usr/bin/gitSie wahrscheinlich nicht die Xcode "Command Line Tools" installiert. Siehe stackoverflow.com/q/9329243/152142
Justin M. Keyes
1

Ken hat insofern Recht, als Git nur über den Pfad Xcode.app verfügbar war. Als ich Mountain Lion (10.8) installierte, hatte ich plötzlich git in / usr / bin / git, so dass es ein Mountain Lion-Zusatz war, soweit ich das beurteilen kann ...

Obwohl ... Ich habe seitdem einige Dinge installiert und bin mir nicht ganz sicher, ob es nicht eine Abhängigkeit für etwas anderes war.

Tom
quelle
0

Ich weiß es wirklich nicht, ich glaube, ich habe git oder XCode nicht für die Momentaufnahme installiert, aber nach der Installation von homebrew und dem Ausführen brew doctorheißt es:

$ brew doctor
Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:

    git
    git-cvsserver
    git-receive-pack
    git-shell
    git-upload-archive
    git-upload-pack

Consider setting your PATH so that /usr/local/bin
occurs before /usr/bin. Here is a one-liner:
    echo export PATH="/usr/local/bin:$PATH" >> ~/.bash_profile

Warum also? Ich habe gerade Command Line Tools für XCode (Mountain Lion) installiert und denke, dass dies derjenige ist, der es installiert hat.

tyoc213
quelle