Jak korzystać z zainstalowanego przez Homebrew git na komputerze Mac?

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. Zalecono brew 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

  1. upewnij się, że masz uprawnienia administratora, ponieważ zostaniesz poproszony o podanie hasła administratora
  2. zmień nazwę pierwotnej lokalizacji, zmieniając jej nazwę za pomocą mv. Na przykład

    sudo mv / usr / bin / git / usr / bin / git-ORIGINAL

  3. 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.

  1. Zainstaluj git z git-scm .com
  2. Najprawdopodobniej nowy git zostanie zainstalowany w /usr/local/bin/git
  3. Spróbuj git --version, jeśli zwraca starszą wersję git firmy Apple, przejdź poniżej
  4. cd ~ (zmień katalog na katalog domowy)
  5. wpisz
  6. Użyj i (aby wstawić tekst w edytorze vi)
  7. 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)
  8. Naciśnij esc
  9. Enter :wq (aby zapisz plik .bashrc)
  10. Wyjdź z terminala i uruchom nowy terminal
  11. 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)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *