Похоже, на моем Mac установлено два разных экземпляра git, и по какой-то причине bash не выбирает тот, который я хотел бы использовать, даже несмотря на то, что его каталог указан перед каталогом другого экземпляра в переменной PATH.
Git находится в следующих двух каталогах
/usr/bin/git #git version 2.24.3 (Apple Git-128), probably installed by XCode
/usr/local/Cellar/git/2.29.2/bin/git #installed by homebrew
На последний также есть символическая ссылка из /usr/local/bin/git
lrwxr-xr-x 1 fredrik admin 28 Dec 6 13:50 /usr/local/bin/git -> ../Cellar/git/2.29.2/bin/git
Я хотел бы использовать версию homebrew, которая является актуальной (и легко поддерживается в актуальном состоянии), в то время как экземпляр XCode является более старым, который я не смог легко обновить. Однако, по какой-то причине, bash продолжает выбирать git из /usr/bin
fredrik ~ $ whereis git
/usr/bin/git
даже если /usr/local/bin стоит перед /usr/bin в моей переменной PATH
fredrik ~ $ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:/opt/X11/bin:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:~/bin:/usr/local/opt/openssl/bin
Почему это так, и что мне сделать, чтобы bash выбрал нужный экземпляр? Я уже пытался удалить экземпляр git из /usr/bin, но система не позволяет мне
fredrik bin $ rm -rf git
rm: git: Operation not permitted
вероятно, из-за защиты целостности системы или чего-то в этом роде.
решение1
Вы, вероятноявляютсяиспользуя /usr/local/bin/git
. Проблема в том, что вы не задаете правильный вопрос. Не используйте whereis
(он не делает то, что вы думаете); используйте which
, например:
which -a git
Это выведет список всех известных git
инструментов в порядке $PATH. Или вы можете просто сказать
git --version
Это покажет вам, какую версию git
использует типичная команда.