Masz kilka dobrych odpowiedzi - więc chciałem skomentować to pytanie. Szukasz wyraźnych instrukcji instalacji gita ze źródła z homebrew lub klienta GUI, czy po prostu potwierdzenia, że OS X łączy kilka wersji git z podstawowym systemem operacyjnym? opensource.apple.com/source/Git (FWIW - Najnowszy git, jaki widziałem do tej pory w pakiecie Apple to 1.7.12.4, który pochodzi z Git-37)
bmike
Odpowiedzi:
105
Dziękuję wszystkim za pomocne odpowiedzi. W moim przypadku dodanie
Jeśli chcesz zmiany uporczywe całej użytkowników, można przenieść /usr/local/binwyżej /usr/binw /etc/paths.
kevin,
3
Jest to rozwiązanie zaproponowane przez sam Homebrew podczas uruchamiania w brew doctorcelu zdiagnozowania problemu
VoxPelli
1
odpowiedź ta powinna zostać zaktualizowana o proponowane przez KevinT rozwiązanie definiowania /etc/paths. Zdefiniowanie tylko „eksportu” może nie wystarczyć, jeśli /usr/binma „pierwszeństwo” przed /usr/local/bin(z naparu) ...
emgsilva
8
Pamiętaj, aby ponownie uruchomić terminal! Nie przyszło mi do głowy, dopóki nie zobaczyłem komentarza Juana Diego Gonzalesa poniżej
Souleiman
2
@Souleiman: Ponowne uruchomienie nie jest konieczne. source ~/.bash_profileprzeczytam to ponownie. Ponowne uruchomienie jest prawdopodobnie szybsze / łatwiejsze. :)
43
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:
PS Odnośnie komentarzy na temat ryzyka związanego z edycją / usr / bin: IMHO to NBD. (Choć podoba mi się globalny koczownik. Zrobić „sudo ln -s / usr / local / bin / git / usr / bin / git” ... co gwarantuje, że każde wywołanie „/ usr / bin / git” będzie wyraźnie twój zarządzany napar. Ale moim zdaniem, instalacja git oznacza, że przejmujesz własność git na swój system. Martwisz się o nieznane procesy korzystające ze starszej, alternatywnej wersji git, może być źle umieszczony. Zalecam aktualizowanie w / wersje git (dla bezpieczeństwa, nie tylko funkcji) i samodzielne zarządzanie. Homebrew ułatwia to. /$0.02
tydzień
Nie działało to dla mnie, aby je cofnąć, po prostu zrób: sudo mv / usr / bin / git-apple / usr / bin / git. Komentarz Juana Diego Gonzalesa zadziałał. (w zasadzie postępuj zgodnie z przyjętą odpowiedzią, a następnie uruchom ponownie terminal).
Souleiman
Nawet 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.
Ben
2
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
Vladislav Rastrusny
Obecnie wydaje się, że homebrew stawia się na „froncie” ŚCIEŻKI, więc mam nadzieję, że nie jest już potrzebny :)
rogerdpack
32
Status 2019
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
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).
W moim przypadku nie wiedziałem, że muszę ponownie uruchomić Terminal, więc ta część może pomóc niektórym ludziom. Jest szybszy niż przyjęty ze względu na jedną wkładkę. Jeśli jest to konkurs, myślę, że moja odpowiedź jest niewłaściwa. W przeciwnym razie myślę, że się przyczynia. (Powiedz mi, jeśli chcesz, abym dokonał edycji zamiast tego).
Juan Diego Gonzales
Robisz ten jeden liner podczas instalacji Homebrew
user151019
7
Uznałem tę odpowiedź za pomocną. Ponowne uruchomienie terminala jest nieoczywistym problemem dla wielu osób niezaznajomionych z działaniem .bash_profile i delikatnym przypomnieniem dla reszty z nas.
Magne
@JuanDiegoGonzales Doskonała obserwacja! Zastanawiałem się nad tym samym po zainstalowaniu gita i nie wiedziałem dlaczego. Po wskazówkach dotyczących pamięci podręcznej przeprowadziłem nieco więcej badań: unix.stackexchange.com/q/5609/52921
kstratis
4
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
upewnij się, że masz uprawnienia administratora, ponieważ zostaniesz poproszony o hasło administratora
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.
Czy to jest w 100% bezpieczne? Czy to zepsuje coś związanego z Mac?
Levani
Jeśli wykonasz opisane kroki, rozwiązanie nie zepsuje niczego wstępnie zainstalowanego, ponieważ pliki wykonywalne git nie są usuwane. To dlatego w punkcie 2 powinien zmienić nazwę oryginalnego / usr / bin / git na przykład jako /usr/bin/git.BACKUP
Globalny nomad
10
Nie rób tego - naprawdę nie powinieneś się bawić /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
MattDMo
Dzięki @MattDMo, to wydaje się być najlepszym podejściem w tym przypadku.
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ć
Don; t zmieniaj nazwy lub zmieniaj rzeczy w / usr / bin, ponieważ może to złamać Apple thigs i zostaną one zmienione podczas aktualizacji systemu lub XCode. użyj ścieżki, do której jest przeznaczony,
user151019
@ Zaznacz, że masz rację. Ale nie sądzę, abyś miał kłopoty, jeśli zmienisz tylko git w / usr / bin. Dla mnie to działa przez kilka miesięcy.
Pfitz
Zgodziłbym się, że normalna zmiana rzeczy w / usr / bin to złe wieści, ale nie mogę sobie przypomnieć, że OS X faktycznie używa git, więc szkoda może być niewielka i dotyczy tylko „czystego” systemu, który pasuje do rachunków. Szkodą byłaby aktualizacja OS X, która mogłaby zastąpić nowego gita starszą wersją, stąd normalną praktyką jest lokalizowanie nowego pliku binarnego poza lokalizacją ścieżki systemowej.
bmike
3
Myślę, że znacznie łatwiej byłoby dodać /usr/local/bin(katalog instalacyjny homebrew, IIRC) do $PATHprzodu, /usr/binzamiast
marudzić
1
Zainstaluj git with brew, uruchom to.
brew link --force git
Zamknij i ponownie otwórz terminal, aby uruchomić which 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.
Zainstaluj git z git-scm.com
Najprawdopodobniej zostanie zainstalowany nowy git /usr/local/bin/git
Spróbuj git --version, jeśli zwróci starą wersję git firmy Apple, przejdź dalej
cd ~ (zmień katalog na katalog domowy)
rodzaj vi .bashrc
Użyj i(aby wstawić tekst w edytorze vi)
Jeśli znajdziesz linię z 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)
Naciśnij klawisz esc
Enter :wq(aby zapisać .bashrcplik)
Wyjdź z terminala i uruchom nowy terminal
Teraz spróbuj git --version(powinieneś zobaczyć nową wersję)
To wygląda jak dwie instalacje. Myślę, że normalna (dostępna do pobrania) wersja git idzie do / usr / local / git / ... To jest kwestia dodania tego do ścieżki lub usunięcia drugiego (lub obu)
Nicholaz
-2
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.
Kroki
Przejdź do Xcode.app -> Preferencje -> Pobieranie
Zaktualizuj (lub zainstaluj) narzędzia wiersza polecenia
Uruchom brew doctori napraw wszystkie inne przeszkody
Uruchom, brew upgradeaby zaktualizować wszystkie pakiety naraz
Odpowiedzi:
Dziękuję wszystkim za pomocne odpowiedzi. W moim przypadku dodanie
w
~/.bash_profile
następnierozwiązałem problem dla mojego użytkownika.
źródło
/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) ...source ~/.bash_profile
przeczytam to ponownie. Ponowne uruchomienie jest prawdopodobnie szybsze / łatwiejsze. :)Ok, jestem gotów poważnie potraktować SCM.
Nie, nie tego chciałem. Mam <3 homebrew, więc:
Wszystko gotowe?
Doh! (zadrapania głowy)
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:
Zadziałało?
Jak dotąd tak dobrze, teraz chwila prawdy:
w00t! :) Czas iść przeczytać http://git-scm.com ! :)
źródło
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
Status 2019
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
i gotowe.
Aby potwierdzić, otwórz nowe (!) Okno terminala i wpisz
źródło
brew link --overwrite git
pracował dla mniePo zainstalowaniu najnowszego gita przez brew (
brew install git
), uruchom ten jednowierszowy (jak sugerujebrew doctor
), jeśli jeszcze go nie ma: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.
źródło
Kiedy piszesz
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
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.
źródło
/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.
źródło
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:
i nie zapomnij połączyć dupka
Zakłada się, że
/usr/local/bin
jest to$PATH
zmienna środowiskowa. Jeśli nadal masz problem, spróbuj uruchomići napraw wymienione tam problemy.
źródło
/usr/local/bin
(katalog instalacyjny homebrew, IIRC) do$PATH
przodu,/usr/bin
zamiastZainstaluj git with brew, uruchom to.
brew link --force git
Zamknij i ponownie otwórz terminal, aby uruchomić
which git
.źródło
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ść przyPATH
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ę)źródło
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
pokaże, gdzie jest stary.
źródło
/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.
Kroki
brew doctor
i napraw wszystkie inne przeszkodybrew upgrade
aby zaktualizować wszystkie pakiety narazźródło