2012-05-04 8 views
42

Zainstalowałem XCode i dlatego też jest tam także git. Ponieważ chcę mieć nowszą wersję gita, którą zainstalowałem używając homebrew.przesłaniam git z Xcode z wersją homebrew

Ale homebrew wersja git nigdy nazywa ponieważ moja droga wygląda to

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 

co oznacza /usr/bin/git jest zawsze dobrze o nazwie przed /usr/local/bin/git.

Czy istnieje sposób na zmianę bez zmiany PATH?

+0

Stworzyłem ten skrypt, aby Xcode używał lokalnej instalacji Git w/usr/local/bin. Sprawdź to. https://gist.github.com/4659915 – Baub

Odpowiedz

55

Xcode faktycznie używa GIT, który jest przechowywany w /Applications/Xcode.app/Contents/Developer/usr/bin. Ta sama wersja GIT zostanie zainstalowana w /usr/bin po zainstalowaniu narzędzi wiersza poleceń w ramach instalacji Xcode. Tak więc nie będziesz w stanie zmienić tego, z czego korzysta Xcode (chyba, że ​​chcesz ukryć zawartość pakietu Xcode). Jeśli z aplikacji terminala, chcesz korzystać z homebrew zainstalowany GIT to masz dwie opcje:

  1. referencyjny GIT z pełną ścieżką jak /usr/local/bin/git ... W tym przypadku można utworzyć alias jak alias mgit=/usr/local/bin/git a następnie użyć mgit ... z terminala
  2. Zmień ścieżkę jako PATH=/usr/local/bin:$PATH w swoim .bashrc lub .zshrc, jeśli używasz pliku zsh (lub za każdym razem, gdy uruchamiasz terminal w wierszu poleceń).
+1

Dzięki za odpowiedź. W końcu zmieniłem ścieżkę 'PATH' w'/etc/paths'. – BetaRide

+0

Powiązane: http://stackoverflow.com/questions/5364614/is-there-a-problem- with-having-usr-local-bin-before-usr-bin-on-the-path-in-os –

+4

On OS X Mountain Lion, używam ".bash_profile" zamiast ".bashrc" - Robię to od lat, choć nie wiem, gdzie go poznałem, ani dlaczego działa (i .bashrc nie.) –

13

Od Xcode ciężko kodowane własną wersję git, która jest zainstalowana na /Applications/Xcode.app/Contents/Developer/usr/bin/git, udało mi się użyć tej pracy wokół trick:

  1. przejdź do katalogu Xcode:

    cd /Applications/Xcode.app/Contents/Developer/usr/bin

  2. zmienić nazwę gitary Xcode w ten sposób:

    sudo mv ./git ./git-xcode-usr-bin

  3. odwołuje własną git który jest instalowany przez homebrew:

    sudo ln -s /usr/local/bin/git ./git

I zrobiłem to samo z /usr/bin/git

Będzie acctually odwołuje /usr/local/Cellar/git/1.8.0/bin/git (bo” m używać git 1.8.0 w chwili obecnej)

Cert w rzeczywistości może to powodować inne problemy, na przykład gdy uaktualniam wersję gitarzystów homebrew w przyszłości, to nie będzie działać dla mnie :(i wtedy muszę utworzyć nowy link.

Robię to tak, ponieważ chcę rozwiązać mój problem tutaj 13177203. I po przeszukiwaniu StackOverFlow przez długi czas, w końcu dostałem to rozwiązanie.

+2

Podczas gdy generalnie unikam mieszania się z takimi pakietami, użyłem tej odpowiedzi. Z powodu zmiany opcji 'push.default' w git 1.8, Xcode podał mi następujący błąd i nie pozwolił mi dodać zasobów do mojego projektu:' error: Zepsuta wartość dla push.default: simple. błąd: musi być jednym z niczego, pasującym, śledzącym lub aktualnym. fatal: zły plik konfiguracyjny linii 7 .gitconfig'. Inną opcją byłaby zmiana mojego gitconfig z powrotem na ustawienia 1.7. – towynlin

7

Jeśli używasz fish shell zamiast bash, możesz wskazać preferowany plik binarny git, dodając następujące elementy do ~/.config/fish/config.fish.

function git 
    /usr/local/bin/git $argv; 
end 
+0

Pracował jak urok! Dzięki za tę wskazówkę. Nie wiedziałem, że możesz to zrobić w muszli rybnej. To jest bardzo użyteczne. – Leif