Подтвердить что ты не робот

Переопределить git из Xcode с версией homebrew

Я установил XCode, и поэтому есть git. Поскольку я хочу иметь более новую версию git, я установил с помощью homebrew.

Но версия homewrew git никогда не вызывается, так как мой PATH выглядит так

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

что означает, что /usr/bin/git вызывается до /usr/local/bin/git.

Есть ли способ изменить это, не изменяя PATH?

4b9b3361

Ответ 1

Xcode фактически использует GIT, который хранится в /Applications/Xcode.app/Contents/Developer/usr/bin. Такая же версия GIT устанавливается в /usr/bin, когда вы устанавливаете инструменты командной строки как часть установки Xcode. Таким образом, вы не сможете изменить то, что использует Xcode (если только вы не захотите гадости с содержимым пакета Xcode). Если из терминального приложения вы хотите использовать установленный на дому GIT, то у вас есть два варианта:

  • Ссылка GIT с полным путем как /usr/local/bin/git ... В этом случае вы можете создать псевдоним типа alias mgit=/usr/local/bin/git, а затем использовать mgit ... из терминала
  • Измените путь как PATH=/usr/local/bin:$PATH либо в .bashrc, либо .zshrc, если вы используете zsh файл (или каждый раз, когда вы запускаете терминал в командной строке).

Ответ 2

Так как Xcode жестко закодировал собственную версию git, которая установлена ​​на /Applications/Xcode.app/Contents/Developer/usr/bin/git, мне удалось использовать эту работу вокруг трюка:

  • перейдите в каталог Xcode:

    cd /Applications/Xcode.app/Contents/Developer/usr/bin

  • переименуйте Xcode git следующим образом:

    sudo mv ./git ./git-xcode-usr-bin

  • свяжите мой собственный git, который устанавливается через homebrew:

    sudo ln -s /usr/local/bin/git ./git

И я сделал то же самое с /usr/bin/git

Это будет связывать ссылку /usr/local/Cellar/git/1.8.0/bin/git (потому что в настоящее время я использую git 1.8.0)

Конечно, это может вызвать некоторые другие проблемы, например, когда я обновляю homebrew verion git в будущем, это не сработает для меня:( и мне нужно создать новую ссылку.

Я делаю это так, потому что я хочу решить свою собственную проблему здесь 13177203. И после долгого поиска StackOverFlow я наконец получил это решение.

Ответ 3

Если вы используете shell для рыб вместо bash, вы можете указать на ваш предпочтительный двоичный файл git, добавив следующее в ~/.config/fish/config.fish.

function git
  /usr/local/bin/git $argv; 
end