Da dove viene / usr / bin / git?

22

Ho un piccolo problema. Ad un certo punto ho usato git ma non ricordo se è stato installato di default su Lion.

Ecco la versione e il percorso di git:

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

Ho anche un nuovo git in / usr / local / git

Vorrei usare la versione più recente ma non so se rimuovendo quella vecchia (/ usr / bin ha la precedenza nella variabile path) Interromperò qualcosa.

Qual è il modo corretto per risolvere questo conflitto?

    
posta cromestant 03.02.2012 - 01:41
fonte

6 risposte

24

git è installato da Xcode. Dubito che avrai problemi se la sostituisci, ma non posso darti una risposta definitiva a questo ...

  1. Quello che farei è rinominare il vecchio /usr/bin/git in git_old , quindi affidarsi al tuo percorso per selezionare quello nuovo.
  2. Se non funziona , sposta il nuovo su /usr/bin . Dubito che Xcode sia pignolo su quale versione di git sta usando.
  3. Se non funziona ancora , sposta git_old su /usr/bin/git e utilizza un percorso diretto, rinomina o alias per il nuovo.

Dubito che dovrai superare il numero 1 in alto, però. Questo dovrebbe essere sufficiente.

Modifica: ho letto il post originale all'indietro. La prima cosa che dovresti fare è assicurarti che il tuo percorso includa la nuova directory git PRIMA della directory che contiene il vecchio git.

    
risposta data 03.02.2012 - 03:30
fonte
9

Non è necessario eseguire l'hacking dell'altra versione, a meno che non si sia davvero stretti per lo spazio. Modifica il tuo profilo .bash e assicurati che / usr / local / bin si trovi davanti a / usr / bin nella tua variabile PATH

Personalmente preferisco adottare uno schema con percorsi utensile definiti e il percorso creato da questi, ad es.

GIT_HOME=/usr/local

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

Ciò significa che qualsiasi cosa che cerca strumenti usando il PATH troverà la tua versione di git, e qualsiasi cosa che "realmente deve" avere la versione / usr / bin molto probabilmente avrà quel percorso cablato e può ancora trovarlo

    
risposta data 03.02.2012 - 14:07
fonte
6

Ho avuto lo stesso problema: una vecchia versione di Git che era la versione Xcode. Ho provato a installare una nuova versione di Git dal link e aggiornato il bash_profile con

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

Quindi ricarica la tua bash e prova git --version

Ha funzionato per me:)

    
risposta data 12.07.2012 - 23:43
fonte
1

Sul mio sistema (10.7.3, Xcode 4.3.2) Xcode git non è installato in /usr/bin/git . Tutto il Xcode 4 (come tutte le app dall'App Store, credo) è nel suo pacchetto .app. In particolare, il suo git è a /Applications/Xcode.app/Contents/Developer/usr/bin/git .

Io uso git (via Xcode) sempre e non ho affatto /usr/bin/git qui. Quindi non fa parte dell'installazione Lion predefinita, o, almeno, non in quella posizione.

FWIW, il git nel pacchetto Xcode.app ha un --version che legge:

git version 1.7.7.5 (Apple Git-26)

quindi scommetto che il tuo /usr/bin/git è la tua installazione e l'aggiornamento non può danneggiare nulla.

In alternativa, puoi installare Xcode (è gratuito!) e mettere /Applications/Xcode.app/Contents/Developer/usr/bin/ nel tuo $ PATH, ma è eccessivo se vuoi solo git.

    
risposta data 15.05.2012 - 06:56
fonte
1

Ken è corretto in quanto git era disponibile solo attraverso il percorso Xcode.app. Quando ho installato Mountain Lion (10.8), improvvisamente ho git in / usr / bin / git, quindi è stato un addizione Mountain Lion per quanto posso dire ...

Anche se ... ho installato parecchie cose da allora e non sono del tutto sicuro che non fosse una dipendenza per qualcos'altro.

    
risposta data 15.08.2012 - 12:20
fonte
0

Davvero non lo so, penso di non aver installato git o XCode per il momment ma dopo aver installato homebrew ed eseguito brew doctor dice:

$ 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

Allora perché? Ho appena installato Command Line Tools per XCode (Mountain Lion) e penso che questo sia quello che l'ha installato.

    
risposta data 15.09.2013 - 00:32
fonte

Leggi altre domande sui tag