Як оновити Git до останньої версії на macOS?


165

Я щойно купив новий Mac з OS X Lion і перевірив у Терміналі, яка версія git встановлена ​​за замовчуванням. Я отримав відповідь

git --version
> git version 1.7.5.4

Я хотів би оновити git до останньої версії 1.7.8.3, тому я завантажив інсталятор dmg "git-1.7.8.3-intel-universal-snow-leopard.dmg" і запустив його.

Після встановлення термінал все ще каже, що версія 1.7.5.4. Що я роблю неправильно?


4
Введіть, which gitщоб побачити, де знаходиться двійковий файл. Це те саме місце, де ви встановили нове?
Грег Хьюгілл

4
Він говорить /usr/bin/gitпро 1.7.5.4, але як я можу знати, де DMG встановив нову версію? Чому вона не оновлює / перезаписує попередню версію автоматично? Якщо я хочу використовувати нову, як я можу пов'язати gitкоманду з новою версією? (дякую за дійсно швидку відповідь до речі!)
Ніколас Ренон

1
на моєму mac (os 10.6.8) старий git 1.7.5.4 живе в / usr / bin / git, тоді як новий інсталятор git 1.7.11.3 вводить git у / usr / local /
miker

Цікаво, чи хороший підхід superuser.com/a/580611/74576 Я б хотів, щоб я міг зрозуміти команди для цього.
Райан

Я зробив запис у .bash_profile замість .bashrc & він працював. Я думаю, якщо ваш термінал працює як "Оболонка входу за замовчуванням", це станеться.
Swapnil Chincholkar

Відповіді:


58

Напевно, буде краще, якщо ви додали:

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

у файл з іменем .bashrc у вашій домашній папці. Таким чином, /usr/local/git/binспочатку знайдеться будь-яке інше програмне забезпечення, яке ви можете встановити .

Щоб легко це зробити, просто введіть:

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

в Термінал, і він зробить це за вас.


1
Як каже README.txt, git встановлюється в / usr / local / git.
бананас

18
Зручна підказка kmikael - це просто баш. (Щоб змінити оболонку mac за замовчуванням, розблокуйте акаунти або "користувачі та групи" у системних префіксах, клацніть на обліковому записі для "розширених параметрів".) Пропозиція, що використовує bash_profile замість bashrc, наприклад, echo 'export PATH="/usr/local/git/bin:/usr/local/sbin:~/bin:$PATH"' >> ~/.bash_profileє на сайті moncefbelyamani.com . Обговорення того, чи потрібно додавати .bash_profile чи .bashrc, знаходиться на superuser.com
miker

Що ви використовували для встановлення git? Я щойно перевірив останню версію, офіційний інсталятор тут встановлює git /usr/local/git/bin/git, це означає, що вищезазначений метод все ще повинен працювати на 10.8.4.
kmikael

Дякую @miker, він працював для мене з .bash_profile, але не .bashrc.
adimauro

Я скасував це рішення, навіть якщо воно працює. Будь ласка, прочитайте моє оновлення мого повідомлення для пояснення.
Ніколас Ренон

52

Це просто, якщо у вас вже є домашня мова : припустивши, що у вас є домашня мова, введіть наступне:

brew install git

Після його встановлення введіть наступні два рядки, які встановлять наш шлях до локального дистрибутива git замість Apple.

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

ЯКЩО ВИ НЕ МАЄТЕ ДОМАШНУ ГРУПУ, СЛЕДУЙТЕ ЦІ КРОКИ Перевірте версію

$ git --version

Резервне копіювання (або видалення) Apple git (необов'язково)

$ sudo mv /usr/bin/git /usr/bin/git-apple

Встановіть Homebrew, якщо у вас його не було

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Або оновіть, якщо у вас вже є

$ brew update && brew upgrade

Встановіть Git за допомогою Homebrew

$ brew install git

Символічне посилання

$ brew link --force git

Закрийте термінал і знову відкрийте, а потім перевірте версію

$ git --version

Ви повинні побачити ...

git version <latest version>

Приємно! Зараз ми в безпеці! А наступного разу ви можете просто…

$ brew update && brew upgrade


10
Що стосується sudo mv /usr/bin/git /usr/bin/git-apple: Перейменування системного git не працюватиме на macOS El Capitan і пізніше, якщо ви не відключите Захист системної цілісності, як описано тут apple.stackexchange.com/a/248229/16290 . Особисто я просто оновлюю свою, PATHщоб це було /usr/local/binраніше /usr/bin. Таким чином, git Homebrew завжди має перевагу (після закриття терміналу та повторного відкриття). Щодо вразливих місць безпеки git, Apple врешті оновить пакетний git своїми оновленнями безпеки. Тим часом можна просто уникнути використання вбудованого git, налаштовуючи PATH, як описано.
Нейт Кук

16

Після пошуку "проблеми з оновленням git на mac" в Google я прочитав кілька публікацій і спробував наступне, перш ніж вирішити проблему, виконавши крок 4:

  1. Я оновив свій термінальний шлях, використовуючи вищевказану команду експорту. Кожен раз, коли я виходив з терміналу і перезапускав його, коли я набирав git --versionтермінал, він все одно повертає старішу версію 1.8.

  2. Я дотримувався інструкцій README.txt щодо оновлення до поточної версії 2.0.1, яка постачається з інсталятором .dmg, і коли я перезапустив термінал, все ще не йду.

  3. Я шукав / etc / path / папку, як указано вище, і каталог під назвою "path" не існує на моєму Mac. Я використовую OS X Mavericks версії 10.9.4.

  4. Потім я згадав, що на моєму Mac встановив Homebrew і запустив наступне:

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

Це остаточно вирішило мою проблему. Якщо хтось має деяке розуміння того, чому це спрацювало, подальше розуміння буде дуже вдячне. Можливо, у мене в системі залишилось декілька налаштувань шляху від роботи з Ruby минулого року.


1
Я вже встановив git. Тому після виконання останнього кроку brew install gitя отримав повідомлення про помилку, і він запропонував виконати brew upgrade gitкоманду замість цього. Ти чоловік! Це дійсно просто трюк :)
Патросу

15

Нещодавно я також оновив Git на своїй машині OS X до останнього. Я не використовував те саме, що .dmgви використовували, але коли я встановив, двійкові файли були розміщені /usr/local/bin. Тепер, як PATHбуло влаштовано моє , каталог /usr/binз'являється раніше /usr/local/bin. Отже, що я зробив:

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

Це переміщує декілька оригінальних програм, названих git*у новий підкаталог, що не дає їм дороги. Після цього which gitпоказує, що /usr/local/binзнайдено той, що знаходиться в .

Змініть описану вище процедуру, як це необхідно, щоб відповідати тому, де ви встановили нові бінарні файли.


2
Дякую! Насправді нові бінарні файли розміщувались /usr/local/git.
Ніколя Ренон

1
Примітка: мені довелося перезапустити Terminal, щоб побачити новий git. Здається, явно, але спочатку мене бентежить.
migg

15

якщо ви користуєтеся домашньою мовою, ви можете оновити сім-посилання за допомогою

brew link --overwrite git

Я спробував усі інші відповіді вище цього, і ось що, нарешті, налаштувало мене на останню версію git. Запуск brew install gitотримав мені останню версію, але вона не налаштувала належну символьну посилання. біг brew link gitдав мені помилку, сказавши, що він не може символізувати git, оскільки він вже існував. нарешті біг brew link --overwrite gitпоклав цвях у труну, тому тепер git --versionпоказує, що я перебуваю на найсучаснішій версії git
Gharbad The Weak

7

Установник з домашньої сторінки git встановлюється /usr/local/gitза замовчуванням. Однак якщо ви встановите XCode4 , він встановить версію git в /usr/bin. Щоб переконатися, що ви можете легко оновити веб-сайт і використовувати останню версію git, відредагуйте або інформацію про свій профіль, яку потрібно розмістити /usr/local/git/binраніше, /usr/binв $ PATH, або відредагуйте /etc/pathsта вставте /usr/local/git/binяк перший запис.

Це може допомогти комусь хоча б змінити порядок в / etc / paths, які працювали на мене.



6

Я використовував наступне для оновлення git на mac.

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

у моєму випадку у мене вже встановлено git, і я знову встановився за допомогою homebrew, який завантажив нову версію, але вона не була пов’язана належним чином. Мені в кінцевому підсумку потрібно було від’єднати вручну, потім повторно пов’язати, а потім воно працювало. Також мені потрібно було знову відкрити свій термінальний сеанс, щоб він знайшов нову версію замість старої / системної версії: brew unlink git && brew link git && source ~/.bashrc
FireDragon

5

найпростіший спосіб, який я знайшов поки що, - це офіційний веб-сайт git. Він просто обчислював залежності та завантажував усі необхідні бібліотеки / інструменти

http://git-scm.com/book/en/Getting-Started-Installing-Git

Інший головний спосіб - встановити Git через MacPorts ( http://www.macports.org ). Якщо у вас встановлено MacPorts, встановіть Git via

$ sudo port встановити git-core + svn + doc + bash_completion + gitweb


2

Щоб зберегти обидві версії, я просто змінив значення змінної середовища PATH, поставивши на початку git шлях нової версії "/ usr / local / git / bin /", він змушує використовувати найновішу версію:

$ echo $ PATH

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

$ git --вернення

версія git 2.4.9 (Apple Git-60)

початкове значення: / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin: / usr / local / git / bin /

нове значення: / 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 --вернення

git версія 2.13.0


1

Без домородіння

  1. Використовуйте інсталятор з веб-сайту git.
  2. Оновіть свій ~/.bash_profileфайл. Зауважте, що ця команда відрізняється від відповіді kmikael тим, що вона міститься у файлі:
    • Інша команда: 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

  1. Якщо ви використовуєте Xcode, вам потрібно буде додати кілька символічних посилань .
    • Приклад: ln -s /opt/local/bin/git /usr/bin/git
  2. Перезапустити термінал.
    • which gitслід сказати каталог у README.txtфайлі з dmg.
    • git --version слід сказати оновлену версію.
    • echo $PATH слід почати з /usr/local/git/bin:/usr/local/sbin:

0

Я вважаю за краще не змінювати ієрархію контурів, а замість цього конкретно займатися git ... знаючи, що я ніколи не буду використовувати старий git, щоб робити те, що тепер керуватиме новий git . Це жорстоке рішення.

Примітка: Я встановив XCode на Йосеміті (10.10.2) чистої першої .

Потім я встановив з двійкового файла, доступного на 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

Я зробив це таким чином:

  1. Відкрийте додаток GitHub, встановлене на Mac
  2. Перейдіть на вкладку Додатково → Встановити інструменти командного рядка
  3. Як тільки ви отримаєте повідомлення про те, що всі команди встановлені, закрийте свій термінал і знову відкрийте його.
  4. Тепер перевірте git --version, вона повинна дати вам останню версію.

0

Вам потрібно відрегулювати шлях оболонки, шлях буде встановлено у .bashrc або .bash_profile у вашому домашньому каталозі, швидше за все .bash_profile

Тому додайте в шлях, подібний до наведеного нижче, і зберігайте те, що у вас вже є на шляху, кожен сегмент розділений двокрапкою:

експортувати PATH = "/ usr / local / bin: / usr / bin / git: / usr / bin: / usr / local / sbin: $ PATH"


0

Остання версія не була доступна як двійковий файл для mac на git-scm.com, тому я встановив з джерела. Мені не вистачало необхідного пакета для локалізації та додано NO_GETTEXT=trueдля встановлення без локалізації.

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

Це встановлено git під ~/binяким я потім повинен був додати до початку своєї PATHзмінної.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.