Я сталкиваюсь с очень странной проблемой, когда пытаюсь использовать последнюю версию git, которую я только что установил через homebrew. which git
указывает на установку homebrew, но вызов git
возвращает исходную версию, установленную с OS X.
Я проверил сначала, чтобы увидеть оригинальную версию, на которой я был.
[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)
Тогда я пошел в доморощенный, чтобы установить последнюю версию.
[user@home ~]$ brew install git
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/git-2.0.0.mavericks.bottle.2.tar.gz
######################################################################## 100.0%
==> Pouring git-2.0.0.mavericks.bottle.2.tar.gz
==> Caveats
The OS X keychain credential helper has been installed to:
/usr/local/bin/git-credential-osxkeychain
The 'contrib' directory has been installed to:
/usr/local/share/git-core/contrib
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
zsh completion has been installed to:
/usr/local/share/zsh/site-functions
==> Summary
🍺 /usr/local/Cellar/git/2.0.0: 1324 files, 31M
Похоже, это сработало! Убедитесь, что он указывает на правильный мерзавец
[user@home ~]$ which git
/usr/local/bin/git
Должно быть хорошо, верно? Не так быстро
[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)
Это странно. Я действительно указываю на правильный мерзавец?
[user@home ~]$ ls -l /usr/local/bin/git
lrwxr-xr-x 1 user group 27 Jul 3 15:54 /usr/local/bin/git -> ../Cellar/git/2.0.0/bin/git
Конечно, похоже на это. Работает когда я вызываю это вручную
[user@home ~]$ /usr/local/Cellar/git/2.0.0/bin/git --version
git version 2.0.0
Но не как git
[user@home ~]$ which git
/usr/local/bin/git
[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)
Любые идеи относительно того, что может быть причиной этого?
РЕДАКТИРОВАТЬ: Решено. source .bashrc
починил это. Все еще любопытно, почему which
бы вернуть мне правильный исполняемый файл, но он не был бы вызван, хотя, если кто-то может объяснить это.
$PATH
.Ответы:
Оболочки поддерживают кэш путей, в которых исполняемые файлы были найдены в
$PATH
переменной. Таким образом, он кешируется,/usr/bin/git
а не/usr/local/bin/git
потому, что последний не существовал, когда запускалась ваша оболочка Запускhash -r
в Bash с вашего текущего терминала очистит этот кеш, тогда первый найденный экземпляр$PATH
должен быть тем, который выполняется.источник
hash -r
у меня сработалоУ меня точно такая же проблема. Вот мое решение.
После этого вы закончите, однако вы не сможете увидеть какие-либо изменения при запуске
git --version
. Просто выйдите и войдите снова, запуститеgit --version
снова.источник
source ~/.bash_profile
.У меня точно такая же проблема. Я просто перезапустил свой терминал.
источник
Моя проблема заключалась в том, что у меня было установлено приложение Mac GitHub.
/usr/local/bin/git
указывал на версию приложения git, а не на версию Homebrew. Удаление приложения GitHub устранило проблему для меня.источник
При использовании homebrew для обновления git на вашем компьютере, выполните следующие действия:
brew doctor
Исправьте предложенные проблемы
brew update
если доступна более новая версия homebrewbrew install git
скачать и установить последнюю версию gitбег
brew doctor
даст вам знать, чтовыполнение
brew link git
приведет к ошибкеbrew link --overwrite git
перезаписать символическую ссылку и указать на установленный git brew.источник
Откройте свой терминал. Введите эту команду.
sudo nano /etc/paths
Затем скопируйте следующий путь в начало файла.
/usr/local/git/bin
Нажмите control + X и сохраните.
Проверьте
git --version
Работает для меня.
источник
git/bin
. Вы имеете в видуbin/git
? Кроме того, нет необходимости добавлять это к вашим путям -/usr/local/bin
уже там.