Właśnie kupiłem nowego Maca z OS X Lion i sprawdziłem w Terminalu, która wersja git jest zainstalowana domyślnie. Mam odpowiedź
git --version
> git version 1.7.5.4
Chciałbym zaktualizować git do najnowszej wersji 1.7.8.3, więc pobrałem instalator dmg „git-1.7.8.3-intel-universal-snow-leopard.dmg” i uruchomiłem go.
Po instalacji terminal nadal podaje, że wersja to 1.7.5.4. Co ja robię źle?
which git
aby zobaczyć, gdzie jest plik binarny. Czy to to samo miejsce, w którym zainstalowałeś nowy?/usr/bin/git
o wersji 1.7.5.4, ale skąd mam wiedzieć, gdzie DMG zainstalowało nową wersję? Dlaczego nie uaktualnia / nie zastępuje poprzedniej wersji automatycznie? Jeśli chcę użyć nowej, jak mogę powiązaćgit
polecenie z nową wersją? (tak przy okazji dzięki za bardzo szybką odpowiedź!)Odpowiedzi:
Prawdopodobnie byłoby lepiej, gdybyś dodał:
do pliku o nazwie .bashrc w twoim katalogu domowym. W ten sposób każde inne oprogramowanie, które możesz zainstalować
/usr/local/git/bin
, również zostanie znalezione jako pierwsze.Aby w łatwy sposób to zrobić, wpisz:
do terminala i zrobi to za Ciebie.
źródło
echo 'export PATH="/usr/local/git/bin:/usr/local/sbin:~/bin:$PATH"' >> ~/.bash_profile
Jest na moncefbelyamani.com . Dyskusja o tym, czy dodać do .bash_profile czy .bashrc jest na superuser.comgit
? Właśnie sprawdziłem najnowszą wersję, oficjalny instalator tutaj instaluje git/usr/local/git/bin/git
, co oznacza, że powyższa metoda powinna nadal działać na 10.8.4.To proste, jeśli masz już Homebrew : zakładając, że masz zainstalowany homebrew, wpisz:
Po zainstalowaniu wpisz następujące dwie linie, które ustawią naszą ścieżkę do lokalnej dystrybucji git zamiast do Apple.
JEŚLI NIE MASZ DOMU, WYKONAJ TE KROKI Sprawdź wersję
$ git --version
Utwórz kopię zapasową (lub usuń) Apple git (opcjonalnie)
$ sudo mv /usr/bin/git /usr/bin/git-apple
Zainstaluj Homebrew, jeśli go nie masz
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Lub zaktualizuj, jeśli już masz
$ brew update && brew upgrade
Zainstaluj Git z Homebrew
$ brew install git
Dowiązanie symboliczne
$ brew link --force git
Zamknij Terminal i otwórz ponownie, a następnie sprawdź wersję
$ git --version
Powinieneś zobaczyć…
git version <latest version>
Miły! Jesteśmy teraz bezpieczni! Następnym razem możesz po prostu…
$ brew update && brew upgrade
źródło
sudo mv /usr/bin/git /usr/bin/git-apple
: Zmiana nazwy systemu git nie będzie działać w systemie macOS El Capitan i nowszych, chyba że wyłączysz Ochronę integralności systemu zgodnie z opisem tutaj apple.stackexchange.com/a/248229/16290 . Osobiście po prostu aktualizuję moje,PATH
więc to/usr/local/bin
przychodzi wcześniej/usr/bin
. W ten sposób git Homebrew zawsze ma pierwszeństwo (po zamknięciu terminala i ponownym otwarciu). W przypadku luk w zabezpieczeniach git Apple ostatecznie zaktualizuje dołączony git o aktualizacje zabezpieczeń. W międzyczasie można po prostu uniknąć używania wbudowanego gita, konfigurując PATH zgodnie z opisem.Po wyszukaniu w Google hasła „problem z aktualizacją git na mac” przeczytałem kilka postów i przed rozwiązaniem problemu wykonałem krok 4:
Zaktualizowałem ścieżkę terminala za pomocą wspomnianego powyżej polecenia eksportu. Za każdym razem, gdy opuszczałem terminal i restartowałem go, kiedy wpisałem
git --version
terminal, nadal zwracał starszą wersję 1.8.Postępowałem zgodnie z instrukcjami README.txt dotyczącymi aktualizacji do aktualnej wersji 2.0.1, która jest dostarczana z instalatorem .dmg i kiedy zrestartowałem terminal, nadal nic nie robiłem.
Szukałem / etc / path / folder zgodnie z instrukcją powyżej, a katalog o nazwie „path” nie istnieje na moim Macu. Używam systemu OS X Mavericks w wersji 10.9.4.
Potem przypomniałem sobie, że mam Homebrew zainstalowanego na moim Macu i uruchomiłem następujące:
To ostatecznie rozwiązało mój problem. Jeśli ktoś ma jakiś wgląd w to, dlaczego to zadziałało, dalszy wgląd byłby bardzo wdzięczny. Prawdopodobnie pozostało mi trochę ustawień ścieżki w moim systemie po pracy z Rubim w zeszłym roku.
źródło
brew install git
otrzymałem komunikat o błędzie i zasugerował, abybrew upgrade git
zamiast tego wykonać polecenie. Jesteś meżczyzną! To po prostuNiedawno zaktualizowałem również Git na moim komputerze z OS X do najnowszego. Nie użyłem tego samego,
.dmg
którego używałeś, ale kiedy go zainstalowałem, pliki binarne zostały umieszczone w/usr/local/bin
. Teraz, tak jak mójPATH
był ułożony, katalog/usr/bin
pojawia się wcześniej/usr/local/bin
. Więc co zrobiłem to:Spowoduje to przeniesienie kilku oryginalnych programów
git*
do nowego podkatalogu, który nie przeszkadza im. Następniewhich git
pokazuje, że ten w/usr/local/bin
został znaleziony.W razie potrzeby zmodyfikuj powyższą procedurę, aby pasowała do miejsca, w którym zainstalowałeś nowe pliki binarne.
źródło
/usr/local/git
.jeśli używasz homebrew, możesz zaktualizować linki do karty SIM za pomocą
źródło
brew install git
zapewniło mi najnowszą wersję, ale nie skonfigurowało poprawnie łącza symbolicznego. uruchomieniebrew link git
spowodowało błąd informujący, że nie można utworzyć linku symbolicznego git, ponieważ już istniał. w końcu biegnębrew link --overwrite git
git --version
Instalator ze strony głównej git instaluje się
/usr/local/git
domyślnie. Jeśli jednak zainstalujesz XCode4 , zainstaluje on wersję git w/usr/bin
. Aby mieć pewność, że możesz łatwo dokonać aktualizacji ze strony internetowej i korzystać z najnowszej wersji git, edytuj informacje o swoim profilu i umieść je/usr/local/git/bin
wcześniej/usr/bin
w $ PATH lub edytuj/etc/paths
i wstaw/usr/local/git/bin
jako pierwszy wpis.Może to komuś pomóc - przynajmniej zmiana kolejności w / etc / path działała dla mnie.
źródło
U mnie
Homebrew 1.6.7
zadziałało:źródło
Użyłem następujących, aby zaktualizować git na Macu.
źródło
brew unlink git && brew link git && source ~/.bashrc
najprostszy sposób, jaki do tej pory znalazłem, pochodzi z oficjalnej strony git. Po prostu obliczył zależności i pobrał wszystkie wymagane biblioteki / narzędzia
http://git-scm.com/book/en/Getting-Started-Installing-Git
źródło
Aby zachować obie wersje, po prostu zmieniłem wartość zmiennej środowiskowej PATH, umieszczając na początku ścieżkę git nowej wersji "/ usr / local / git / bin /", wymusza to użycie najnowszej wersji:
oryginalna wartość: / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin: / usr / local / git / bin /
nowa wartość: / usr / local / git / bin / : / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin
źródło
Bez Homebrew
~/.bash_profile
plik.Zauważ, że to polecenie różni się od odpowiedzi kmikael tym, co umieszcza w pliku:export PATH=/usr/local/git/bin:/usr/local/sbin/:[and so on]
export PATH="/usr/local/git/bin:/usr/local/sbin:$PATH"
echo 'export PATH="/usr/local/git/bin:/usr/local/sbin:$PATH"' >> ~/.bash_profile
ln -s /opt/local/bin/git /usr/bin/git
which git
powinien powiedzieć katalog wREADME.txt
pliku z dmg.git --version
powinien powiedzieć zaktualizowaną wersję.echo $PATH
powinien zaczynać się od/usr/local/git/bin:/usr/local/sbin:
źródło
Wolę nie zmieniać hierarchii ścieżek, ale zamiast tego zajmować się konkretnie gitem ... wiedząc, że nigdy nie użyję starego gita do zrobienia tego, co nowy git teraz poradzi . To rozwiązanie brutalnej siły.
UWAGA: Najpierw zainstalowałem XCode na Yosemite (10.10.2) .
Następnie zainstalowałem z pliku binarnego dostępnego na git-scm.com .
źródło
Zrobiłem to w ten sposób:
git --version
, powinna dać ci najnowszą wersję.źródło
Musisz dostosować ścieżkę powłoki, ścieżka zostanie ustawiona w .bashrc lub .bash_profile w twoim katalogu domowym, bardziej prawdopodobnie .bash_profile
Dodaj więc do ścieżki podobnej do poniższej i zachowaj to, co już masz na ścieżce, każdy segment jest oddzielony dwukropkiem:
export PATH = "/ usr / local / bin: / usr / bin / git: / usr / bin: / usr / local / sbin: $ PATH"
źródło
Najnowsza wersja nie była dostępna jako plik binarny dla mac na git-scm.com, więc zainstalowałem go ze źródła. Brakowało mi wymaganego pakietu do lokalizacji i dodano go
NO_GETTEXT=true
do instalacji bez lokalizacji.Ten zainstalowany
git
pod~/bin
którym następnie musiałem dodać na początku mojejPATH
zmiennej.źródło