Я встановив новітню версію git (1.8.3) за допомогою домашнього перекладу, але коли я набираю текст
git --version
в моєму терміналі він друкує:
git version 1.7.10.2 (Apple Git-33)
Що мені робити, щоб замінити стару версію git новою?
Я встановив новітню версію git (1.8.3) за допомогою домашнього перекладу, але коли я набираю текст
git --version
в моєму терміналі він друкує:
git version 1.7.10.2 (Apple Git-33)
Що мені робити, щоб замінити стару версію git новою?
Відповіді:
Дякую всім за корисні відповіді. У моєму випадку додаю
export PATH="/usr/local/bin:${PATH}"
в ~/.bash_profile
подальшому
source ~/.bash_profile
вирішив проблему для мого користувача.
/usr/local/bin
вище /usr/bin
в /etc/paths
.
brew doctor
для діагностики проблеми
/etc/paths
. Визначення лише "експорту" може бути недостатньо, якщо він /usr/bin
має "пріоритет" над /usr/local/bin
(з самогону) ...
Гаразд, я готовий серйозно поставитися до scm.
$ git --version
git version 1.9.5 (Apple Git-50.3)
Ні, це не те, чого я хотів. Я <3 домашньої, тому:
$ brew install git
Все готово?
$ git --version
git version 1.9.5 (Apple Git-50.3)
До! (дряпає голову)
$ which git
/usr/bin/git
Ах, Apple, git є в / usr / bin, тож воно козирує домашнє. Що робити?
(A) Просто перейменуйте двійкові Apple
(B) Нехай один, котрий керує домашньою мовою, має перевагу:
[редагувати експорт PATH, наприклад, у ~ / .zshrc (о-мі-zsh + iTerm2 FTW! / tangent)]
[конкретно: move / usr / local / bin / git: before / usr / bin:]
... та / або (наприклад, для більш широкого дозволу встановити систему козирів, які встановлюють козир, і мати пріоритет для всіх оболонок та користувачів) також редагувати / etc / path file, [переміщення / usr / local / bin вище / usr / bin ]
Але припускаючи лише найпростіший / найменш інвазивний підхід:
$ sudo mv /usr/bin/git /usr/bin/git-apple
Це спрацювало?
$ which git
/usr/local/bin/git
Поки що хороший, зараз момент істини:
$ git --version
git version 2.2.1
w00t! :) Час поїхати читати http://git-scm.com ! :)
which git
вказівкою на /usr/local/bin/git
це мені не вийшло. Щоб вирішити це, мені довелося видалити додаток GitHub Mac.
sudo mv /usr/bin/git /usr/bin/git-apple mv: rename /usr/bin/git to /usr/bin/git-apple: Operation not permitted
Всі трюки, згадані тут у кількох відповідях, більше не потрібні на macOS Sierra & Mojave з останнім Homebrew. Забудьте про export PATH="..."
зміни та зміни ~/.bash_profile
.
Ви просто робите
brew install git
і зробили.
Для підтвердження відкрийте нове (!) Вікно терміналу та введіть
git --version
brew link --overwrite git
працював на мене
Після встановлення останнього git за допомогою brew ( brew install git
) запустіть цей однокласник (як це запропонував brew doctor
), якщо його ще немає:
echo "export PATH=/usr/local/bin:$PATH" >> ~/.bash_profile
Потім знову закрийте Terminal a open (перезапустіть баш-сесію). Це потрібно зробити, навіть якщо ваш PATH вже був правильним, оскільки ZSH та Bash кешують вміст PATH (див. Документацію щодо вбудованої команди hash
).
Це повинно виправити речі дуже швидко.
Коли ви вводите текст
git --version
у Terminal.app або консолі, ваш коментар до іншого питання вказав, що версія, яку він повертає, - це git в / usr / bin / git
Якщо ви встановили Xcode 4.5 (і новіші) та введіть
xcrun git --version
у Terminal.app або консолі версія, яку він повертає, - це git у пакеті додатків Xcode.
Якщо ви використовуєте Homebrew для встановлення та оновлення git, найпростішим рішенням є
перейменуйте оригінальне місце розташування, перейменувавши його за допомогою mv. Наприклад
sudo mv / usr / bin / git / usr / bin / git-ORIGINAL
створити м'яке посилання за допомогою 'ln -s' до бінарного файлу git, встановленого за допомогою Homebrew.
Зауважте, що MattDMo має кращі рішення в коментарях.
/usr/bin
, оскільки інші програми, про які ви навіть не знаєте, залежать від капризів, пов'язаних з певною версією. Найпростіше рішення, не рухаючи нічого, - додати /usr/local/bin
до $PATH
змінної вашого середовища раніше /usr/bin
- IIRC, встановлення домашнього перекладу до/usr/local/bin
Я спробував це, і це працює на мене.
brew link --overwrite git
Ви повинні перейменувати оригінал git на apple у, /usr/bin/
наприклад, git-org, оскільки /usr/bin
це зазвичай є /usr/local/bin
у вашому каталозі шляху, де знаходиться заварний матеріал.
Тому:
cd /usr/bin
sudo mv git git-org
і не забудьте зв’язати заварку git
brew link git
Це передбачає, що /usr/local/bin
є у вашому $PATH
середовищі змінною. Якщо у вас все ще виникають проблеми, спробуйте запустити
brew doctor
і виправити згадані там проблеми.
/usr/local/bin
(каталог встановлення homebrew, IIRC) $PATH
наперед, /usr/bin
а не замінюватись перейменовуванням та резервним
Встановіть git з варитися, запустіть це.
brew link --force git
Закрийте і знову відкрийте термінал для запуску which git
.
brew link --overwrite git
працював
Якщо ви встановлюєте git з git-scm.com безпосередньо і хочете використовувати останню завантажену git замість яблучної (старої) версії git.
/usr/local/bin/git
git --version
, якщо він повертає Apple стару версію git, тоді перейдіть нижчеcd ~
(змінити каталог в домашній каталог)vi .bashrc
i
(для вставки тексту в редактор vi)export PATH.......
, натисніть клавішу вгорі експорту та введіть наступне: export PATH=/usr/local/:$PATH
(Зверніть особливу обережність зі PATH
змінною, не змішуйте це, це спричинить проблеми для вашої ОС) (сподіваємось, новий git має бути встановлений у /usr/local/git
):wq
(щоб зберегти .bashrc
файл)git --version
(ви повинні побачити нову версію)Це залежить від того, звідки походить твоя туга. Xcode приносить версію, наприклад, можливо, це передова на вашому шляху.
Можливо, набравши текст
which git
покаже, де стара.
/usr/bin/git
...
Щоб оновити що-небудь за допомогою Homebrew на OSX, що включає компіляцію за допомогою gcc, переконайтеся, що у вас є оновлений Інструменти командного рядка з Xcode - так, я знаю, це забирає необхідність приховати загальносистемний інструмент у налаштуваннях програми.
brew doctor
і виправте всі інші перешкодиbrew upgrade
для оновлення всіх пакетів одразу