Zainstalowałem najnowszą wersję git (1.8.3) przy użyciu homebrew, ale kiedy piszę
git --version
w moim terminalu wyświetla:
git version 1.7.10.2 (Apple Git-33)
Co powinienem zrobić, aby zamienić starą wersję git na nową?
Zainstalowałem najnowszą wersję git (1.8.3) przy użyciu homebrew, ale kiedy piszę
git --version
w moim terminalu wyświetla:
git version 1.7.10.2 (Apple Git-33)
Co powinienem zrobić, aby zamienić starą wersję git na nową?
Odpowiedzi:
Dziękuję wszystkim za pomocne odpowiedzi. W moim przypadku dodanie
export PATH="/usr/local/bin:${PATH}"
w ~/.bash_profilenastępnie
source ~/.bash_profile
rozwiązałem problem dla mojego użytkownika.
/usr/local/binwyżej /usr/binw /etc/paths.
brew doctorcelu zdiagnozowania problemu
/etc/paths. Zdefiniowanie tylko „eksportu” może nie wystarczyć, jeśli /usr/binma „pierwszeństwo” przed /usr/local/bin(z naparu) ...
Ok, jestem gotów poważnie potraktować SCM.
$ git --version
git version 1.9.5 (Apple Git-50.3)
Nie, nie tego chciałem. Mam <3 homebrew, więc:
$ brew install git
Wszystko gotowe?
$ git --version
git version 1.9.5 (Apple Git-50.3)
Doh! (zadrapania głowy)
$ which git
/usr/bin/git
Ach, git Apple'a znajduje się w / usr / bin, więc przewyższa homebrew. Co robić?
(A) Zmień nazwę pliku binarnego Apple
(B) Niech jeden zarządzany przez homebrew ma pierwszeństwo:
[edytuj eksport ŚCIEŻKI np. w ~ / .zshrc (oh-my-zsh + iTerm2 FTW! / tangent)]
[konkretnie: move / usr / local / bin / git: before / usr / bin:]
... i / lub (np. aby szerzej pozwolić systemowi homebrew na atut instaluje system, i że pierwszeństwo ma zastosowanie do wszystkich powłok i użytkowników) również edytować plik / etc / paths, [przenoszenie / usr / local / bin powyżej / usr / bin ]
Ale zakładając najprostsze / najmniej inwazyjne podejście:
$ sudo mv /usr/bin/git /usr/bin/git-apple
Zadziałało?
$ which git
/usr/local/bin/git
Jak dotąd tak dobrze, teraz chwila prawdy:
$ git --version
git version 2.2.1
w00t! :) Czas iść przeczytać http://git-scm.com ! :)
which gitwskazanie na /usr/local/bin/gitto nie działało dla mnie. Aby rozwiązać ten problem, musiałem odinstalować aplikację GitHub na komputery Mac.
sudo mv /usr/bin/git /usr/bin/git-apple mv: rename /usr/bin/git to /usr/bin/git-apple: Operation not permitted
Wszystkie sztuczki wymienione tutaj w kilku odpowiedziach nie są już konieczne w systemie macOS Sierra & Mojave z najnowszą wersją Homebrew. Zapomnij export PATH="..."i modyfikuj ~/.bash_profile.
Po prostu to robisz
brew install git
i gotowe.
Aby potwierdzić, otwórz nowe (!) Okno terminala i wpisz
git --version
brew link --overwrite gitpracował dla mnie
Po zainstalowaniu najnowszego gita przez brew ( brew install git), uruchom ten jednowierszowy (jak sugeruje brew doctor), jeśli jeszcze go nie ma:
echo "export PATH=/usr/local/bin:$PATH" >> ~/.bash_profile
Następnie zamknij Terminal i otwórz go ponownie (ponownie uruchom sesję bash). Musisz to zrobić, nawet jeśli ŚCIEŻKA jest już poprawna, ponieważ ZSH i Bash buforują zawartość ŚCIEŻKI (zobacz dokumentację wbudowanego polecenia hash).
To powinno naprawić wszystko naprawdę szybko.
Kiedy piszesz
git --version
w Terminal.app lub konsoli komentarz do innego pytania wskazywał, że zwracana wersja to git w / usr / bin / git
Jeśli zainstalowałeś Xcode 4.5 (i nowsze) i wpisz
xcrun git --version
w Terminal.app lub konsoli zwracana wersja to git w pakiecie aplikacji Xcode.
Jeśli używasz Homebrew do instalacji i aktualizacji git, najprostszym rozwiązaniem jest
zmień nazwę oryginalnej lokalizacji, zmieniając jej nazwę za pomocą mv. Na przykład
sudo mv / usr / bin / git / usr / bin / git-ORIGINAL
utwórz miękkie łącze za pomocą 'ln -s' do pliku binarnego git zainstalowanego z Homebrew.
Zauważ, że MattDMo ma lepsze rozwiązanie w komentarzach.
/usr/bin, ponieważ możliwe jest, że inne programy, o których nawet nie wiesz, zależą od kaprysów związanych z określoną wersją. Najłatwiejszym rozwiązaniem, bez przenoszenia niczego, jest dodanie /usr/local/bindo $PATHzmiennej środowiskowej przed /usr/bin- IIRC, homebrew instaluje się/usr/local/bin
Próbowałem tego i to działa dla mnie.
brew link --overwrite git
Musisz zmienić nazwę oryginalnego git przez apple /usr/bin/na np. Git-org, ponieważ /usr/binzwykle znajduje się on /usr/local/binw katalogu ścieżki, w którym znajduje się napar.
Więc:
cd /usr/bin
sudo mv git git-org
i nie zapomnij połączyć dupka
brew link git
Zakłada się, że /usr/local/binjest to $PATHzmienna środowiskowa. Jeśli nadal masz problem, spróbuj uruchomić
brew doctor
i napraw wymienione tam problemy.
/usr/local/bin(katalog instalacyjny homebrew, IIRC) do $PATHprzodu, /usr/binzamiast
Zainstaluj git with brew, uruchom to.
brew link --force git
Zamknij i ponownie otwórz terminal, aby uruchomić which git.
brew link --overwrite git
Jeśli instalujesz git bezpośrednio z git-scm.com i chciałbyś użyć najnowszego pobranego gita zamiast starej (starej) wersji git firmy Apple.
/usr/local/bin/gitgit --version, jeśli zwróci starą wersję git firmy Apple, przejdź dalejcd ~ (zmień katalog na katalog domowy)vi .bashrci(aby wstawić tekst w edytorze vi)export PATH......., naciśnij enter na górze eksportu i wpisz następujące polecenie: export PATH=/usr/local/:$PATH(Zachowaj szczególną ostrożność przy PATHzmiennej, nie popsuj jej, bo spowoduje to problemy dla twojego systemu operacyjnego) (mam nadzieję, że powinien być zainstalowany nowy git /usr/local/git):wq(aby zapisać .bashrcplik)git --version(powinieneś zobaczyć nową wersję)To zależy od tego, skąd pochodzi twój dupek. Xcode oferuje na przykład wersję, która może być z góry na twojej ścieżce.
Może pisanie
which git
pokaże, gdzie jest stary.
/usr/bin/git...
Aby zaktualizować cokolwiek za pomocą Homebrew na OSX, co wymaga kompilacji za pomocą gcc, upewnij się, że masz zaktualizowane Narzędzia wiersza poleceń od Xcode - tak, wiem, to jest trudne do ukrycia narzędzia systemowego w preferencjach aplikacji.
brew doctori napraw wszystkie inne przeszkodybrew upgradeaby zaktualizować wszystkie pakiety naraz