Zainstalowałem najnowszą wersję gita (1.8.3) przy użyciu homebrew, ale kiedy piszę
git --version
na moim terminalu wyświetla:
git version 1.7.10.2 (Apple Git-33)
Co powinienem zrobić, aby zastąpić starą wersję gita nową?
Komentarze
- Masz kilka dobrych odpowiedzi – więc chciałem skomentować to pytanie. Szukasz wyraźnych instrukcji instalacji git ze źródła z homebrew lub klienta GUI, czy po prostu potwierdzenia, że OS X zawiera kilka wersji git z podstawowym systemem operacyjnym? opensource.apple.com/source/Git (FWIW – najnowszy git I ' widziałem dotychczas pakiet Apple to 1.7.12.4, który pochodzi z Git-37)
Odpowiedź
Dziękuję wszystkim za pomocne odpowiedzi. W moim przypadku dodanie
export PATH="/usr/local/bin:${PATH}"
w ~/.bash_profile
, a następnie
source ~/.bash_profile
rozwiązałem problem dla mojego użytkownika.
Komentarze
- Jeśli chcesz, aby zmiana była trwała dla wszystkich użytkowników, możesz przenieść
/usr/local/bin
powyżej/usr/bin
w/etc/paths
. - To jest proponowane rozwiązanie przez samego Homebrew podczas uruchamiania
brew doctor
w celu zdiagnozowania problemu - ta odpowiedź powinna zostać zaktualizowana za pomocą proponowanego przez KevinT rozwiązania definiującego
/etc/paths
. Zdefiniowanie tylko ” eksportu ” może nie wystarczyć, jeśli/usr/bin
ma ” pierwszeństwo ” ponad/usr/local/bin
(z naparu) … - Pamiętaj zrestartować terminal! Nie ' nie przyszło mi do głowy, dopóki nie zobaczyłem komentarza Juana Diego Gonzalesa ' poniżej
- @Souleiman: Restarting isn ' t konieczne.
source ~/.bash_profile
ponownie to przeczyta. Ponowne uruchomienie jest prawdopodobnie szybsze / łatwiejsze. 🙂
Odpowiedź
Stan 2020
Wszystkie triki wymienione tutaj w kilku odpowiedziach nie są już potrzebne w macOS Sierra, Mojave & Catalina z najnowszym Homebrew. Zapomnij o export PATH="..."
i modyfikacjach ~/.bash_profile
.
Po prostu zrób
brew install git
i gotowe.
Aby potwierdzić, otwórz nowe okno / kartę terminala i wpisz
git --version
Nie zapomnij otworzyć nowego okna. Terminale, które były otwarte przed rozpoczęciem install
, nie odziedziczą żadnych zmian.
Odpowiedź
Ok, jestem gotowy, aby 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! (drapie się po głowie)
$ which git /usr/bin/git
Ach, git Applea znajduje się w / usr / bin, więc przebija ten homebrew. Co robić?
(A) Po prostu zmień nazwę pliku binarnego Apple
(B) Niech pierwszeństwo ma ten zarządzany przez homebrew:
[edytuj PATH eksport np. in ~ / .zshrc (oh-my-zsh + iTerm2 FTW! / tangent)]
[w szczególności: move / usr / local / bin / git: before / usr / bin:]
… i / lub (np. aby szerzej pozwolić, aby homebrew rzeczy przewyższały instalacje systemu i aby pierwszeństwo dotyczyło wszystkich powłok i użytkowników) również edytuj plik / etc / path, [przenoszenie / usr / local / bin powyżej / usr / bin]
Ale zakładając tylko najprostsze / najmniej inwazyjne podejście:
$ sudo mv /usr/bin/git /usr/bin/git-apple
Czy zadziałało?
$ which git /usr/local/bin/git
Jak dotąd dobrze, teraz chwila prawdy:
$ git --version git version 2.2.1
w00t! 🙂 Czas zacząć czytać http://git-scm.com ! 🙂
Komentarze
- PS Dotyczy komentarzy na temat zagrożeń związanych z edycją / usr / bin: IMHO it ' s NBD. (Chociaż podoba mi się Global nomad ' sugg. To zrobić ” sudo ln -s / usr / local / bin / git / usr / bin / git ” … co zapewnia, że cokolwiek wywołuje ” / usr / bin / git ” jawnie dostanie Twój zarządzany przez brew. Ale moim zdaniem instalacja gita oznacza, że ' przejmujesz na własność git w swoim systemie. Obawy o nieznane procesy używające starszej , alternatywna wersja git może być w złym miejscu. Zalecam aktualizowanie wersji w / git (ze względów bezpieczeństwa, a nie tylko funkcji) i samodzielne zarządzanie nią. Homebrew sprawia, że jest to łatwe. / 0,02 USD
- To nie pomogło ' nie działa dla mnie, aby cofnąć, po prostu zrób: sudo mv / usr / bin / git-apple / usr / bin / git. Juan Diego Gonzales ' komentarz zadziałał. (zasadniczo postępuj zgodnie z zaakceptowaną odpowiedzią, a następnie zrestartuj terminal).
- Nawet jeśli
which git
wskazuje na/usr/local/bin/git
, to nie ' t pracuje dla mnie. Aby rozwiązać ten problem, musiałem odinstalować aplikację GitHub na Maca. - MacOS 10.12.5:
sudo mv /usr/bin/git /usr/bin/git-apple mv: rename /usr/bin/git to /usr/bin/git-apple: Operation not permitted
- Po prostu użyj
brew doctor
. W 2020 r. Zaleconobrew link —overwrite git
Odpowiedz
Gdy już „Mamy zainstalowaną najnowszą wersję gita za pośrednictwem programu brew (brew install git
), uruchom tę jedną linijkę (zgodnie z sugestią brew doctor
), jeśli nie już tam:
echo "export PATH=/usr/local/bin:$PATH" >> ~/.bash_profile
Następnie zamknij Terminal i otwórz go ponownie (zrestartuj sesję basha). Musisz to zrobić, nawet jeśli twoja PATH była już poprawna, ponieważ ZSH i Bash buforują zawartość PATH (zobacz dokumentację wbudowanego polecenia hash
).
To powinno naprawdę szybko rozwiązać problem.
Komentarze
- Czym różni się to od zaakceptowanej odpowiedzi?
- W w moim przypadku, nie ' nie wiedziałem, że muszę ponownie uruchomić Terminal, więc ta część może pomóc niektórym ludziom. Jest szybszy niż akceptowany dzięki jednej wkładce. Jeśli ' to konkurs, myślę, że moja odpowiedź jest niewłaściwa. W przeciwnym razie myślę, że to się przyczynia. (Powiedz mi, czy chcesz, żebym zamiast tego dokonał edycji).
- Robisz tę jedną linijkę podczas instalacji Homebrew.
- Ta odpowiedź okazała się pomocna. Ponowne uruchomienie terminala jest nieoczywistym problemem dla wielu osób niezaznajomionych z działaniem .bash_profile i delikatnym przypomnieniem dla reszty z nas.
- @JuanDiegoGonzales Doskonała obserwacja! Zastanawiałem się dokładnie to samo po zainstalowaniu gita i nie ' nie wiedziałem dlaczego. Po wskazówce dotyczącej pamięci podręcznej przeprowadziłem trochę więcej badań: unix.stackexchange.com/q/5609/52921
Odpowiedź
Próbowałem tego i u mnie działa.
brew link --overwrite git
Komentarze
- Pracowałem dla mnie na Mojave (10.14.4)
Odpowiedź
Gdy wpiszesz
git --version
w Terminal.app lub konsoli, Twój komentarz do innego pytania wskazywał wersję, w której zwraca git w / usr / bin / git
Jeśli zainstalowałeś Xcode 4.5 (i nowsze), i wpisz
xcrun git --version
w Terminal.app lub konsola, wersja, którą zwraca, to git w pakiecie aplikacji Xcode.
Jeśli używasz Homebrew do instalacji i aktualizacji git, najprostszym rozwiązaniem jest
- upewnij się, że masz uprawnienia administratora, ponieważ zostaniesz poproszony o podanie hasła administratora
-
zmień nazwę pierwotnej lokalizacji, zmieniając jej nazwę za pomocą mv. Na przykład
sudo mv / usr / bin / git / usr / bin / git-ORIGINAL
-
utwórz miękki link używając „ln -s” do pliku binarnego git zainstalowanego z Homebrew .
Zwróć uwagę, że MattDMo ma lepsze rozwiązanie w komentarzach.
Komentarze
- Czy to jest w 100% bezpieczne? Czy to zepsuje coś związanego z Mac?
- Jeśli wykonasz opisane kroki, rozwiązanie nie ' nie zepsuje niczego, co zostało wstępnie zainstalowane, ponieważ te pliki wykonywalne git nie są usuwane. Dlatego w kroku 2 powinieneś zmienić nazwę swojego oryginalnego / usr / bin / git na np. as /usr/bin/git.BACKUP
- Proszę nie ' rób tego – naprawdę nie powinieneś ' t bawić się
/usr/bin
, ponieważ ' jest możliwe, że inne programy, których nie używasz ' Nie wiem nawet o zależności od kaprysów związanych z daną wersją. Najłatwiejszym rozwiązaniem, bez przenoszenia czegokolwiek, jest dodanie/usr/local/bin
do zmiennej środowiskowej$PATH
przed/usr/bin
– IIRC, homebrew instaluje się w/usr/local/bin
- Dzięki @MattDMo, to wydaje się być najlepszym podejściem w tym przypadku.
Odpowiedź
Zainstaluj git z brew, uruchom to.
brew link --force git
Zamknij i ponownie otwórz terminal, aby uruchomić which git
.
Komentarze
- Jak to zmienia domyślną ścieżkę?
- Pomogło mi to zastąpić xcode ' s git.
- Wystąpił błąd podczas uruchamiania to ale
brew link --overwrite git
zadziałało
Odpowiedź
Musisz zmienić nazwę oryginalny git firmy Apple w /usr/bin/
do e. sol. git-org, ponieważ /usr/bin
zwykle znajduje się przed /usr/local/bin
w katalogu ścieżki, w którym znajdują się rzeczy do parzenia.
Więc:
cd /usr/bin sudo mv git git-org
i nie zapomnij połączyć pliku piwnego
brew link git
Zakłada się, że /usr/local/bin
znajduje się w Twojej $PATH
zmiennej środowiskowej.Jeśli nadal masz problem, spróbuj uruchomić
brew doctor
i napraw wymienione tam problemy.
Komentarze
- Nie zmieniaj nazw ani nie zmieniaj rzeczy w / usr / bin, ponieważ może to zepsuć Apple thigs i zostaną one zmienione podczas aktualizacji systemu lub XCode. użyj ścieżki, do której jest przeznaczony,
- @Zaznacz, że masz rację. Ale nie wierzę, że będziesz miał kłopoty, jeśli zmienisz tylko git w / usr / bin. U mnie działa od kilku miesięcy.
- Zgadzam się, że normalna zmiana rzeczy w / usr / bin to zła wiadomość, ale nie mogę ' nie przywołać systemu operacyjnego X faktycznie używa git, więc szkody mogą być niewielkie i dotyczyć tylko ” czystego ” systemu, który pasuje do rachunków. Szkoda polegałaby na tym, że aktualizacja OS X mogłaby zastąpić nowy git starszą wersją, stąd normalna praktyka lokalizowania nowego pliku binarnego poza lokalizacją ścieżki systemowej.
- Myślę, że byłoby znacznie łatwiej dodać
/usr/local/bin
(homebrew ' s katalogu instalacyjnego, IIRC) do$PATH
przed/usr/bin
zamiast majstrować przy zmianie nazwy i tworzeniu kopii zapasowych itp.
Odpowiedź
Jeśli instalujesz git bezpośrednio z git-scm.com i chciałbyś użyć najnowszej pobranej wersji git zamiast Apple (starej) wersji git.
- Zainstaluj git z git-scm .com
- Najprawdopodobniej nowy git zostanie zainstalowany w
/usr/local/bin/git
- Spróbuj
git --version
, jeśli zwraca starszą wersję git firmy Apple, przejdź poniżej -
cd ~
(zmień katalog na katalog domowy) - wpisz
- Użyj
i
(aby wstawić tekst w edytorze vi) - Jeśli znajdziesz wiersz zawierający
export PATH.......
, naciśnij klawisz Enter na górze eksportu i wpisz:export PATH=/usr/local/:$PATH
(Zachowaj szczególną ostrożność ze zmiennąPATH
, nie zepsuj tego, bo spowoduje to problemy dla systemu operacyjnego) (miejmy nadzieję nowy git powinien być zainstalowany w/usr/local/git
) - Naciśnij esc
- Enter
:wq
(aby zapisz plik.bashrc
) - Wyjdź z terminala i uruchom nowy terminal
- Teraz spróbuj
git --version
(powinieneś zobaczyć nową wersję)
Odpowiedź
Zrób prosty alias, aby uniknąć zmiany ścieżki:
alias git=/usr/local/bin/git
Odpowiedź
Próbowałem wielu rzeczy, łącznie z tym postem ” odpowiedzi. Wreszcie udało mi się uruchomić wersję gita brew zamiast Xcode, po prostu usuwając folder dodatkowych narzędzi Xcode:
sudo rm -rf /Library/Developer/CommandLineTools
Odpowiedź
Kiedy używasz brew install git
do instalacji, zwróć uwagę, że instaluje on git
under:
==> Summary 🍺 /usr/local/Cellar/git/2.29.2: 1,480 files, 39.7MB
Będziesz pojawia się również błąd, który pojawia się wcześniej w dzienniku i prawdopodobnie go przeoczyłeś:
==> Downloading https://homebrew.bintray.com/bottles/git-2.29.2.big_sur.bottle.t Already downloaded: /Users/chadjinik/Library/Caches/Homebrew/downloads/08165d120fcebc7823c487a6778b2ea0e67fd2cd9177d6e7d656268f474ab5da--git-2.29.2.big_sur.bottle.tar.gz ==> Pouring git-2.29.2.big_sur.bottle.tar.gz Error: The `brew link` step did not complete successfully The formula built, but is not symlinked into /usr/local Could not symlink bin/git Target /usr/local/bin/git already exists. You may want to remove it: rm "/usr/local/bin/git" To force the link and overwrite all conflicting files: brew link --overwrite git
Po prostu uruchom:
brew link --overwrite git
i powinno być dobrze.
Odpowiedź
To zależy od tego, skąd pochodzi twój git. Xcode dostarcza na przykład wersję, być może jest na początku na twojej ścieżce.
Może wpisanie
which git
pokaże, gdzie jest stara.
Komentarze
- it ' s w
/usr/bin/git
… - To wygląda na dwie instalacje. Myślę, że normalna (do pobrania) wersja gita trafia do / usr / local / git / … Następnie ' pojawia się kwestia dodania tego do ścieżki lub usunięcia innej (lub oba)