![Попытка обновить Git на Mac OS X и удалить старый Git не удалась](https://rvso.com/image/1466438/%D0%9F%D0%BE%D0%BF%D1%8B%D1%82%D0%BA%D0%B0%20%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C%20Git%20%D0%BD%D0%B0%20Mac%20OS%20X%20%D0%B8%20%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C%20%D1%81%D1%82%D0%B0%D1%80%D1%8B%D0%B9%20Git%20%D0%BD%D0%B5%20%D1%83%D0%B4%D0%B0%D0%BB%D0%B0%D1%81%D1%8C.png)
Я пытаюсь обновить 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 проще всего использоватьдомашнее пиво.
- Установить пиво
- Следуйте инструкциям (
brew doctor
они сообщат вам, как обновить$PATH
ваш/usr/local/bin:$PATH
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
И вновь установленный git
Xcode будет вам доступен в первую очередь, а не 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 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