10

OS X (или Xcode) поставляется в комплекте с git 1.7.something, но после brew install git (1.8.0), which git продолжает возвращать старый /usr/bin/git .

Это то, что я получаю, когда я сейчас получаю $ PATH:

/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin

Разве доморощенные вещи не должны иметь приоритет?

Кроме того, я не знаю, откуда этот usr/local/git/bin в конце.

3 ответа3

7

Понял. Ответ в вашем вопросе; brew устанавливает git в /usr/local/git/bin (не /usr/local/bin), но так как это путь к пути /usr/bin , вы получаете его первым. Мой комментарий, для which -a git должен был указать вам в этом направлении.

3

Я также столкнулся с этой проблемой.

После установки git через homebrew, если вы запустите brew doctor он предупредит вас о том, что, как упоминал Джо, система запускает старый git, потому что его место установки на первом месте.

Но, в том же предупреждении, доморощенный дает код, чтобы исправить это:

$ echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile
0

У меня были привычки в Unix иметь директорию ~/bin которую я поместил в начале своей PATH . Это один из первых битов в моем .bashrc:

case ":$PATH:" in
  *:$HOME/bin:*) ;;     # do nothing if $PATH already contains $HOME/bin
  *) PATH=$HOME/bin:$PATH ;;  # in every other case, add it to the front
esac

Имея это в виду, затем выборочное создание только git управляемого Homebrew, имеет приоритет над системной версией (вместо каждого двоичного файла, управляемого Homebrew), и только для ваших сессий оболочки (вместо всех программ, запускаемых откуда угодно, включая программы с графическим интерфейсом), это так же просто, как символическая ссылка:

ln -s /usr/local/bin/git ~/bin/git

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