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_profile
następnie
source ~/.bash_profile
rozwiązałem problem dla mojego użytkownika.
/usr/local/bin
wyżej /usr/bin
w /etc/paths
.
brew doctor
celu zdiagnozowania problemu
/etc/paths
. Zdefiniowanie tylko „eksportu” może nie wystarczyć, jeśli /usr/bin
ma „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 git
wskazanie na /usr/local/bin/git
to 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 git
pracował 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/bin
do $PATH
zmiennej ś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/bin
zwykle znajduje się on /usr/local/bin
w 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/bin
jest to $PATH
zmienna środowiskowa. Jeśli nadal masz problem, spróbuj uruchomić
brew doctor
i napraw wymienione tam problemy.
/usr/local/bin
(katalog instalacyjny homebrew, IIRC) do $PATH
przodu, /usr/bin
zamiast
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/git
git --version
, jeśli zwróci starą wersję git firmy Apple, przejdź dalejcd ~
(zmień katalog na katalog domowy)vi .bashrc
i
(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 PATH
zmiennej, 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ć .bashrc
plik)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 doctor
i napraw wszystkie inne przeszkodybrew upgrade
aby zaktualizować wszystkie pakiety naraz