Переопределить 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?
Ответы
Ответ 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