Неможливо використовувати git, встановлений на дому


16

У мене виникає дуже дивна проблема, коли я намагаюся використовувати останню версію git, яку я тільки що встановив через homebrew. which gitвказує мені на встановлення домашнього перекладу, але виклик 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)

Будь-які ідеї щодо того, що може бути причиною цього?

EDIT: Вирішено. source .bashrcвиправили це. Досі цікаво, чому whichб повернути мені правильний виконуваний файл, але він не називатиметься, якщо хтось може це пояснити.


Не точно впевнений, у чому проблема, але це здається, що ви, можливо, захочете подивитися на поточне значення $PATH.
Zev Eisenberg

3
якщо ви хочете побачити всі встановлені вами версії git, використовуйте -> which -a git - (який git, просто повертає вам шлях першої знайденої у вашій змінній PATH), щоб побачити, які шляхи у вашому PATH роблять -> echo $ PATH
konqui

Відповіді:


25

Оболонки підтримують кеш шляхів, де виконувані файли були знайдені в $PATHзмінній. Отже, це кешировано, /usr/bin/gitа не /usr/local/bin/gitтому, що останнього не існувало, коли запускалася ваша оболонка. Запуск hash -rу Bash з вашого поточного терміналу очистить цей кеш, тоді перший екземпляр, знайдений у, $PATHповинен бути той, який виконується.


hash -rпрацював для мене
металевий редуктор твердий

5

У мене точно така ж проблема. Ось моє рішення.

brew uninstall git
# make sure everything is alright, maybe brew will give you some hint
brew doctor
brew update  
brew install git
# magic happen, brew will give you hint /usr/bin occurs before /usr/local/bin
# and recommend you run following command
brew doctor
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile

Після цього ви закінчите, проте ви не зможете побачити жодних змін під час запуску git --version. Просто вийдіть із системи та увійдіть знову, запустіть git --versionзнову.


7
Відкриття нового вікна терміналу достатньо. Можна також зателефонувати source ~/.bash_profile.
Даніель Б

Ці кроки були саме те, що мені було потрібно, і вони допомогли мені встановити свою систему, використовуючи останню версію git. Я також виявив ще одну копію git, яку я завантажив з git-scm.com, тому запустив сценарій uninstall.sh, щоб видалити цю. Зараз у мене все добре, велике спасибі Фангу та Єнсу!
Майкл Шивер

Дякуємо за кроки Для мене я автоматично міг використовувати git --version, не виконуючи останню команду echo.
Майкл Фултон


-1

Моєю проблемою було те, що в мене встановлено додаток Mac GitHub. /usr/local/bin/gitвказував на версію програми git, а не на версію Homebrew. Видалення програми GitHub вирішило проблему для мене.


-1

Використовуючи домашню мову для оновлення git на вашій машині, виконайте наступні дії:

brew doctor

Виправте запропоновані проблеми

brew update якщо доступна новіша версія домашнього перекладу

brew install git завантажити та встановити останню версію git

біг brew doctorдасть вам це знати

Попередження : у вашому підвалі відключені кеги

Виконання brew link gitпризведе до помилки

Помилка: не вдалося символізувати bin / git

Target / usr / local / bin / git вже існує. Ви можете видалити його:

rm '/ usr / local / bin / git'

brew link --overwrite git щоб перезаписати симпосилання та вказати на встановлену вагу git.


-1

Відкрийте свій термінал. Введіть цю команду.

sudo nano /etc/paths

Потім скопіюйте наступний шлях у верхній частині файлу.

/usr/local/git/bin

Натисніть клавішу управління + X і збережіть.

Перевірити git --version

Працює для мене.


Такого файлу немає git/bin. Ви маєте на увазі bin/git? Також немає необхідності додавати це до своїх шляхів - /usr/local/binце вже є.
slhck
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.