Я пытаюсь обновить 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?

3 ответа3

2

На Mac самый простой способ - использовать доморощенный.

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

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

Почему вы не можете установить существующий:

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

Короче ответ.

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

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

Затем закройте и сохраните этот файл и загрузите его в ваш сеанс терминала, набрав:

source ~/.bash_profile

И недавно установленный git будет доступен вам в предпочтении перед уже установленным 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 git 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 и соответствующие двоичные файлы командной строки.

Короче говоря, вы не можете и не должны пытаться удалить версию git для Xcode. Вместо этого вы хотите, чтобы ваш Терминал поддерживал двоичные файлы 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 .

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

git version 2.5.3

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

-2

Установив git просто недостаточно. Пожалуйста, помните , что git будет работать только если вы cd - диск «D в папку функционального мерзавец репо. Это означает, что вы должны увидеть ./.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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .