Jak zaktualizować Git do najnowszej wersji na macOS?


165

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?


4
Wpisz, which gitaby zobaczyć, gdzie jest plik binarny. Czy to to samo miejsce, w którym zainstalowałeś nowy?
Greg Hewgill,

4
Mówi /usr/bin/gito 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ć gitpolecenie z nową wersją? (tak przy okazji dzięki za bardzo szybką odpowiedź!)
Nicolas Renon

1
na moim Macu (OS 10.6.8) stary git 1.7.5.4 znajduje się w / usr / bin / git, podczas gdy nowy instalator gita 1.7.11.3 umieszcza git w / usr / local /
miker

Ciekawe, czy superuser.com/a/580611/74576 to dobre podejście. Chciałbym móc wymyślić polecenia do tego.
Ryan

Wprowadziłem wpis w .bash_profile zamiast .bashrc i zadziałało. Myślę, że jeśli twój terminal działa jako „Domyślna powłoka logowania”, to tak się dzieje.
Swapnil Chincholkar

Odpowiedzi:


58

Prawdopodobnie byłoby lepiej, gdybyś dodał:

export PATH=/usr/local/git/bin:/usr/local/sbin:$PATH

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:

echo "export PATH=/usr/local/git/bin:/usr/local/sbin:$PATH" >> ~/.bashrc

do terminala i zrobi to za Ciebie.


1
Jak mówi plik README.txt, git jest instalowany w / usr / local / git.
bananaaus

18
Poręczna wskazówka kmikael służy tylko do bash. (Aby zmienić domyślną powłokę Maca, odblokuj konta lub okno „Użytkownicy i grupy” w ustawieniach systemowych, kliknij konto z naciśniętym klawiszem Ctrl, aby wyświetlić „opcje zaawansowane”). Sugestia użycia bash_profile zamiast bashrc, np. echo 'export PATH="/usr/local/git/bin:/usr/local/sbin:~/bin:$PATH"' >> ~/.bash_profileJest na moncefbelyamani.com . Dyskusja o tym, czy dodać do .bash_profile czy .bashrc jest na superuser.com
miker

Czego użyłeś do zainstalowania git? 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.
kmikael

Dzięki @miker, działało dla mnie z .bash_profile, ale nie .bashrc.
adimauro

Odznaczyłem to rozwiązanie, nawet jeśli działa. Przeczytaj moją aktualizację mojej wiadomości w celu uzyskania wyjaśnień.
Nicolas Renon

52

To proste, jeśli masz już Homebrew : zakładając, że masz zainstalowany homebrew, wpisz:

brew install git

Po zainstalowaniu wpisz następujące dwie linie, które ustawią naszą ścieżkę do lokalnej dystrybucji git zamiast do Apple.

export PATH=/usr/local/bin:$PATH
git --version

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


10
Dotyczy 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, PATHwięc to /usr/local/binprzychodzi 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.
Nate Cook

16

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:

  1. 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 --versionterminal, nadal zwracał starszą wersję 1.8.

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

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

  4. Potem przypomniałem sobie, że mam Homebrew zainstalowanego na moim Macu i uruchomiłem następujące:

    brew --version
    brew update
    brew search git
    brew install git
    

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.


1
Już zainstalowałem git. Więc po ostatnim kroku brew install gitotrzymałem komunikat o błędzie i zasugerował, aby brew upgrade gitzamiast tego wykonać polecenie. Jesteś meżczyzną! To po prostu
załatwiło sprawę

15

Niedawno zaktualizowałem również Git na moim komputerze z OS X do najnowszego. Nie użyłem tego samego, .dmgktórego używałeś, ale kiedy go zainstalowałem, pliki binarne zostały umieszczone w /usr/local/bin. Teraz, tak jak mój PATHbył ułożony, katalog /usr/binpojawia się wcześniej /usr/local/bin. Więc co zrobiłem to:

cd /usr/bin
mkdir git.ORIG
mv git* git.ORIG/

Spowoduje to przeniesienie kilku oryginalnych programów git*do nowego podkatalogu, który nie przeszkadza im. Następnie which gitpokazuje, ż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.


2
Dzięki! Właściwie nowe pliki binarne zostały umieszczone w /usr/local/git.
Nicolas Renon

1
Uwaga: musiałem ponownie uruchomić Terminal, aby zobaczyć nowy git. Wydaje się oczywiste, ale na początku zdezorientował mnie.
migg

15

jeśli używasz homebrew, możesz zaktualizować linki do karty SIM za pomocą

brew link --overwrite git

Wypróbowałem wszystkie inne odpowiedzi powyżej tej i właśnie to ostatecznie skonfigurowało mnie z najnowszą wersją gita. uruchomienie brew install gitzapewniło mi najnowszą wersję, ale nie skonfigurowało poprawnie łącza symbolicznego. uruchomienie brew link gitspowodowało błąd informujący, że nie można utworzyć linku symbolicznego git, ponieważ już istniał. w końcu biegnę brew link --overwrite gitgit --version
wbiłem

7

Instalator ze strony głównej git instaluje się /usr/local/gitdomyś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/binwcześniej /usr/binw $ PATH lub edytuj /etc/pathsi 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.



6

Użyłem następujących, aby zaktualizować git na Macu.

hansi$ brew install git 

hansi$ git --version 
git version 2.19.0


hansi$ brew install git
Warning: git 2.25.1 is already installed, it's just not linked
You can use `brew link git` to link this version.

hansi$ brew link git 
Linking /usr/local/Cellar/git/2.25.1... 
Error: 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

To list all files that would be deleted:
  brew link --overwrite --dry-run git

hansi$ brew link --overwrite git 
Linking /usr/local/Cellar/git/2.25.1... 205 symlinks created


hansi$ git --version
git version 2.25.1

w moim przypadku miałem już zainstalowany git i zainstalowałem go ponownie za pomocą homebrew, który pobrał nowszą wersję, ale nie był poprawnie połączony. Skończyło się na tym, że musiałem ręcznie odłączyć, a następnie połączyć ponownie, a potem zadziałało. Musiałem również ponownie otworzyć sesję terminala, aby znaleźć nową wersję zamiast starszej wersji / systemu: brew unlink git && brew link git && source ~/.bashrc
FireDragon


2

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:

$ echo $ PATH

/ usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin: / usr / local / git / bin /

$ git --version

git w wersji 2.4.9 (Apple Git-60)

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

$ export PATH = / usr / local / git / bin /: / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin

$ git --version

git w wersji 2.13.0


1

Bez Homebrew

  1. Użyj instalatora ze strony internetowej git.
  2. Zaktualizuj swój ~/.bash_profileplik.Zauważ, że to polecenie różni się od odpowiedzi kmikael tym, co umieszcza w pliku:
    • Inne polecenie: export PATH=/usr/local/git/bin:/usr/local/sbin/:[and so on]
    • Poniżej polecenie: export PATH="/usr/local/git/bin:/usr/local/sbin:$PATH"
    • Użyj tego, który wolisz.

echo 'export PATH="/usr/local/git/bin:/usr/local/sbin:$PATH"' >> ~/.bash_profile

  1. Jeśli używasz Xcode, musisz dodać kilka dowiązań symbolicznych .
    • Przykład: ln -s /opt/local/bin/git /usr/bin/git
  2. Zrestartuj terminal.
    • which git powinien powiedzieć katalog w README.txt pliku z dmg.
    • git --version powinien powiedzieć zaktualizowaną wersję.
    • echo $PATH powinien zaczynać się od /usr/local/git/bin:/usr/local/sbin:

0

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 .

$ which git
/usr/bin/git
$ cd /usr/bin
$ sudo ln -sf /usr/local/git/bin/git
$ sudo ln -sf /usr/local/git/bin/git-credential-osxkeychain
$ sudo ln -sf /usr/local/git/bin/git-cvsserver
$ sudo ln -sf /usr/local/git/bin/git-receive-pack
$ sudo ln -sf /usr/local/git/bin/git-shell
$ sudo ln -sf /usr/local/git/bin/git-upload-archive
$ sudo ln -sf /usr/local/git/bin/git-upload-pack
$ ls -la
(you should see your new symlinks)

0

Zrobiłem to w ten sposób:

  1. Otwórz aplikację GitHub zainstalowaną na komputerze Mac
  2. Kliknij kartę Zaawansowane → Zainstaluj narzędzia wiersza poleceń
  3. Gdy pojawi się komunikat, że wszystkie polecenia zostały zainstalowane, zamknij terminal i otwórz go ponownie.
  4. Teraz sprawdź git --version, powinna dać ci najnowszą wersję.

0

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"


0

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=truedo instalacji bez lokalizacji.

git clone https://github.com/git/git.git
cd git
make NO_GETTEXT=true
make NO_GETTEXT=true install

Ten zainstalowany gitpod ~/binktórym następnie musiałem dodać na początku mojej PATHzmiennej.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.