Попытка обновить Git на Mac OS X и удалить старый Git не удалась

Попытка обновить Git на Mac OS X и удалить старый Git не удалась

Я пытаюсь обновить git на моем Mac OS X 10.8.5 (Mountain Lion).

Я скачал эту новую версию с сайтаэта ссылка, дважды щелкнул по нему .dmgи перетащил uninstall.shв свой терминал (следуя инструкциямтам) для того, чтобы удалить старую версию, и я получаю:

Git doesn't appear to be installed via this installer.  Aborting

Обратите внимание, что gitв настоящее время он установлен на моем компьютере.

$ git --version
git version 1.7.9.6 (Apple Git-31.1)
$ which git
/usr/bin/git 

Почему я не могу удалить? Как мне обновить git?

решение1

На Mac проще всего использоватьдомашнее пиво.

  1. Установить пиво
  2. Следуйте инструкциям ( brew doctorони сообщат вам, как обновить $PATHваш/usr/local/bin:$PATH
  3. brew install git

И перестаньте беспокоиться об обновлениях вручную, просто запускайте их brew update && brew upgradeвремя от времени.

Почему нельзя установить существующую версию:

  • У Apple есть стандартная установка git, которую использует Xcode (предполагается, что вы установили Xcode или, по крайней мере, утилиты командной строки)

решение2

Более короткий ответ.

Нет необходимости удалять Xcode, gitкоторый вы видите в Mac OS X. Просто добавьте /usr/local/git/binв свой файл $PATH, отредактировав ~/.bash_profileего, например export PATHтак:

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

Затем закройте и сохраните этот файл и загрузите его в сеанс терминала, введя следующее:

source ~/.bash_profile

И вновь установленный gitXcode будет вам доступен в первую очередь, а не gitуже установленный.

Более развернутый ответ.

Интерпретация сообщения об ошибке.

Проблему можно понять, посмотрев содержимое uninstall.shскрипта Bash, который идет в комплекте.официальный установщик Git для Mac OS Xчтобы увидеть, что именно он делает. Вот фрагмент вверху, который выдает ошибку, которую вы видите:

#!/bin/bash
if [ ! -r "/usr/local/git" ]; then
  echo "Git doesn't appear to be installed via this installer.  Aborting"
  exit 1
fi

Обратите внимание на строку if [ ! -r "/usr/local/git" ]; then, скрипт Bash проверяет существование этого пути к каталогу:

/usr/local/git/

Но когда вы запустили which gitpath directory path, вы получили:

/usr/bin/ 

Это означает, что официальный установщик устанавливает gitсвои элементы в каталог , /usr/local/git/а не в основной каталог Mac OS X /usr/bin/.

Тогда что это за другая версия, которая у gitвас уже есть? Давайте проверим вывод git --versionдля получения более подробной информации:

$ git --version
git version 1.7.9.6 (Apple Git-31.1)

Видите это (Apple Git-31.1)? Это означает, что он был установлен Apple. И поскольку gitон не является частью базовой установки Mac OS X, единственный способ его установки — через Xcode и связанные с ним двоичные файлы командной строки.

Короче говоря, вы не можете — и не должны — пытаться удалить версию Xcode git. Вместо этого вы хотите, чтобы ваш Терминал отдавал предпочтение gitбинарным файлам, установленным в , /usr/local/git/bin/а не основным бинарным файлам Mac OS X в /usr/bin/. И вы можете сделать это, изменив $PATHнастройки ~/.bash_profileследующим образом.

Устранение проблемы.

Сначала откройте ~/.bash_profileв текстовом редакторе. Я предпочитаю делать это прямо в командной строке, используя nanoвот так:

nano ~/.bash_profile

Теперь, если export $PATHв этом файле ничего нет ~/.bash_profile, просто добавьте $PATHв него следующую строку:

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

Если export $PATHтам есть, измените это значение так, чтобы оно оказалось /usr/local/git/binперед основным элементом $PATHсистемы. Обратите внимание на :разделитель.

Теперь закройте и сохраните этот файл и загрузите его в сеанс терминала, введя следующее:

source ~/.bash_profile

Теперь, если вы введете:

which git

Вывод должен быть следующим:

/usr/local/git/bin/git

Это означает, что ваш терминал $PATHтеперь выполнит проверку, /usr/local/git/bin/прежде чем перейдет к проверке других каталогов в своих $PATHзначениях по умолчанию для gitдвоичного файла.

Так что без удаления версии Xcode gitвы теперь можете загрузить и установить официальный — и обновленный — gitбинарный файл и использовать его, не имея дела с Homebrew или чем-либо еще. Например, в моей системе текущий вывод выглядит git --versionследующим образом:

git version 2.5.3

Никаких (Apple Git-31.1)в поле зрения. Просто чистый gitномер версии, который актуален и готов к использованию благодаря этой $PATHкорректировке.

решение3

gitНедостаточно просто установить. Пожалуйста, также помните, что это сработает gitтолько если вы cdпопали в функциональную папку git repo. Это означает, что вы должны увидеть ./.gitпапку (подсказка: используйте ls -laдля просмотра скрытых папок) и git statusдолжны вернуть что-то похожее на пример ниже:

[some_repo]$ git status
On branch master
Your branch is up-to-date with 'origin/prod'.
nothing to commit, working directory clean

Но если папка не является допустимым репозиторием git, вы увидите что-то вроде этого:

[~]$ git status
fatal: Not a git repository (or any of the parent directories): .git

Связанный контент