Как обновить 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, и это сработало. Я думаю, что если ваш терминал работает как «Default Login Shell», то это происходит.
Свопнил Чинчолкар

Ответы:

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

в терминал, и он сделает это за вас.

kmikael
источник
1
Как говорит README.txt, git устанавливается в / usr / local / git.
bananaaus
18
Удобный наконечник kmikael только для bash. ( Для того, чтобы изменить макинтош разблокировать оболочки по умолчанию учетные записи или окно «пользователи и группы» в системе префов, управление кнопкой мыши счет для «продвинутых вариантов».) Предложение , используя 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 INTO /usr/local/git/bin/git, что означает , что вышеописанный способ должен еще работать на 10.8.4.
Кмикаэль
Спасибо @miker, он работал для меня с .bash_profile, но не с .bashrc.
adimauro
Я не проверял это решение, даже если оно работает. Пожалуйста, прочитайте мое обновление моего сообщения для объяснения.
Николас Ренон,
52

Это просто, если у вас уже есть Homebrew : если у вас установлен homebrew, введите следующее:

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

kvm006
источник
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 / folder, как указано выше, и каталог с именем «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
Примечание: мне пришлось перезапустить Терминал, чтобы увидеть новый git. Кажется очевидным, но сначала смутил меня.
Миг
15

если вы используете homebrew, вы можете обновить сим-ссылки, используя

brew link --overwrite git
rafaecheve
источник
Я попробовал все остальные ответы выше этого, и это то, что, наконец, настроило меня с последней версией git. Запуск brew install gitполучил мне последнюю версию, но он не настроил символическую ссылку должным образом. Запуск brew link gitдал мне ошибку, сказав, что не может Git символическая ссылка, потому что он уже существует. наконец-то бегом brew link --overwrite gitзабил гвоздь в гроб, так что теперь git --versionя нахожусь на самой
последней
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, который работал для меня.

Мухаммед Ариф
источник
7

Для меня с Homebrew 1.6.7этим сработало следующее:

brew upgrade git
Каролис Шарапницкис
источник
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 через

$ sudo port install git-core + svn + doc + bash_completion + gitweb

Kiddo
источник
2

Чтобы сохранить обе версии, я просто изменил значение переменной среды PATH, поместив путь к новой версии git "/ usr / local / git / bin /" в начале, это заставляет использовать самую новую версию:

$ echo $ PATH

/ USR / бен: / бен: / USR / SBIN: / SBIN: / USR / местные / бен: / OPT / X11 / бен: / USR / местные / мерзавец / bin /

$ git --version

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 --version

мерзавец версия 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:
GreeKatrina
источник
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)
azatar
источник
0

Я сделал это следующим образом:

  1. Откройте приложение GitHub, установленное на Mac
  2. Нажмите на вкладку Дополнительно → Установить инструменты командной строки.
  3. Как только вы получите сообщение о том, что все команды установлены, закройте ваш терминал и снова откройте его.
  4. Теперь проверьте git --version, он должен дать вам последнюю версию.
Waaheeda
источник
0

Вам нужно настроить путь оболочки, путь будет установлен в .bashrc или .bash_profile в вашем домашнем каталоге, скорее всего .bash_profile

Поэтому добавьте в путь, аналогичный приведенному ниже, и сохраните то, что у вас уже есть в пути, каждый сегмент разделен двоеточием:

экспорт PATH = "/ usr / local / bin: / usr / bin / git: / usr / bin: / usr / local / sbin: $ PATH"

Windy71
источник
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переменной.

Tmarty
источник