У вас есть пара хороших ответов - поэтому я хотел прокомментировать вопрос. Вы ищете явные инструкции для установки git из исходных текстов из homebrew или клиента с графическим интерфейсом или просто для подтверждения того, что OS X связывает несколько версий git с базовой ОС? opensource.apple.com/source/Git (FWIW - новейший git, который я видел на сегодняшний день в комплекте с Apple, - 1.7.12.4, пришедший из Git-37)
bmike
Ответы:
106
Спасибо всем за полезные ответы. В моем случае добавление
Если вы хотите , чтобы изменения упорных между пользователями, вы можете двигаться /usr/local/binвыше /usr/binв /etc/paths.
Кевин
3
Это решение было предложено самим Homebrew при brew doctorдиагностике проблемы
VoxPelli
1
этот ответ должен быть дополнен предложенным KevinT решением определения /etc/paths. Определение только «экспорта» может оказаться недостаточным, если оно /usr/binимеет «приоритет» над /usr/local/bin(от brew) ...
emgsilva
8
Не забудьте перезапустить терминал! Мне не
приходило
2
@ Сулейман: Перезапуск не нужен. source ~/.bash_profileперечитает это. Перезапуск, скорее всего, быстрее / проще. :)
44
Хорошо, я готов серьезно относиться к 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)
Doh! (царапает голову)
$ which git
/usr/bin/git
Ах, мерзавец Apple находится в / usr / bin, так что он превосходит доморощенный. Что делать?
(A) Просто переименуйте бинарный файл Apple
(B) Пусть доморощенный человек имеет преимущество:
[редактировать экспорт PATH, например, в ~ / .zshrc (oh-my-zsh + iTerm2 FTW! / tangent)]
[в частности: переместить / usr / local / bin / git: before / usr / bin:]
... и / или (например, чтобы более широко позволить доморощенным вещам перевесить установку системы и иметь приоритет для всех оболочек и пользователей), также отредактируйте файл / etc / paths, [двигающийся / usr / local / bin выше / usr / bin ]
Но предполагая только самый простой / наименее инвазивный подход:
PS Обращайтесь к комментариям о рисках редактирования / usr / bin: ИМХО это NBD. (То есть мне нравится sugg Global nomad. Делать "sudo ln -s / usr / local / bin / git / usr / bin / git" ... который гарантирует, что все, что вызывает "/ usr / bin / git" явно получит ваш brew-управляемый. Но я полагаю, что установка git подразумевает, что вы становитесь владельцем git в своей системе. Беспокойство по поводу неизвестных процессов, использующих более старую альтернативную версию git, может оказаться неуместным. git-версии (для безопасности, а не только для функций) и управления ими самостоятельно. Homebrew делает это легко. /$0.02
cweekly
Это не сработало для меня, чтобы отменить это, просто сделайте: sudo mv / usr / bin / git-apple / usr / bin / git. Комментарий Хуана Диего Гонсалеса сработал. (в основном следуйте принятому ответу, затем перезапустите терминал).
Сулейман
Даже с which gitуказанием на /usr/local/bin/gitэто не сработало для меня. Чтобы решить эту проблему, мне пришлось удалить приложение GitHub Mac.
Бен
2
MacOS 10.12.5:sudo mv /usr/bin/git /usr/bin/git-apple mv: rename /usr/bin/git to /usr/bin/git-apple: Operation not permitted
Владислав Раструсный
В наши дни, кажется, доморощенный ставит себя на «передний
план
32
Статус 2019
Все трюки, упомянутые здесь в нескольких ответах, больше не нужны в macOS Sierra & Mojave с последней версией Homebrew. Забудьте export PATH="..."и модификации ~/.bash_profile.
Вы просто делаете
brew install git
и вы сделали.
Для подтверждения откройте новое (!) Окно терминала и введите
Я думаю, что это правильно, но вам нужно открыть новый терминал, или изменение не было
принято
Это не работает для меня, к сожалению.
rsp1984
2
Это работало для меня на Мохаве. Я же должен открыть новый терминал.
Крейг Отис
2
brew link --overwrite gitработал для меня
wickdninja
9
После того, как вы установили последнюю версию git через brew ( brew install git), запустите эту однострочную версию (как предложено brew doctor), если ее там еще нет:
Затем выйдите из терминала и снова откройте его (перезапустите сеанс bash). Вы должны сделать это, даже если ваш PATH уже был корректным, поскольку ZSH и Bash кэшируют содержимое PATH (см. Документацию по встроенной команде hash).
В моем случае я не знал, что мне нужно было перезапустить Терминал, чтобы эта часть могла помочь некоторым людям. Быстрее, чем принято из-за одного лайнера. Если это соревнование, я думаю, что мой ответ неуместен. В противном случае я думаю, что это способствует. (Скажите, хотите ли вы, чтобы я сделал правку вместо этого).
Хуан Диего Гонсалес
Вы делаете это одним вкладышем при установке Homebrew
user151019
7
Я нашел этот ответ полезным. Перезапуск терминала - неочевидная проблема для многих людей, незнакомых с работой .bash_profile, и мягкое напоминание для всех нас.
Магне
@JuanDiegoGonzales Отличное наблюдение! Мне было интересно то же самое после того, как я установил git и не знал почему. После подсказки о кеше я провел еще несколько исследований: unix.stackexchange.com/q/5609/52921
kstratis
4
Когда вы печатаете
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 имеет лучшее решение в комментариях.
Это 100% безопасно? Это сломает что-нибудь, связанное с Mac?
Левани
Если вы выполните описанные шаги, решение не нарушит ничего предустановленного, так как эти исполняемые файлы git не удаляются. Вот почему на шаге 2 вы должны переименовать свой оригинальный / usr / bin / git, например, в /usr/bin/git.BACKUP
Global nomad
10
Пожалуйста, не делайте этого - вы действительно не должны возиться с этим /usr/bin, поскольку вполне возможно, что другие программы, о которых вы даже не знаете, зависят от капризов, связанных с конкретной версией. Самое простое решение, не двигая ничего, чтобы добавить /usr/local/binк вашему $PATHпеременному окружению перед тем /usr/bin- IIRC, доморощенный устанавливается на/usr/local/bin
MattDMo
Спасибо @MattDMo, это лучший подход в этом случае.
Вы должны переименовать оригинальный git в apple, /usr/bin/например, в git-org, так /usr/binкак обычно он находится /usr/local/binв вашем каталоге пути, где находится brew.
Так:
cd /usr/bin
sudo mv git git-org
и не забудьте связать варево мерзавца
brew link git
Это предполагает, что /usr/local/binнаходится в вашей $PATHпеременной среды. Если проблема не устранена, попробуйте запустить
Не переименовывайте и не изменяйте вещи в / usr / bin, так как это может сломать ветки Apple, и они будут заблокированы при обновлении системы или XCode. используйте путь, для которого он предназначен,
user151019
@ Отметьте, что у вас есть смысл. Но я не верю, что у вас будут проблемы, если вы измените только git в / usr / bin. Для меня это работает в течение нескольких месяцев.
Пфитц
Я бы согласился с тем, что обычно изменение вещей в / usr / bin - это плохие новости, но я не могу вспомнить, чтобы OS X фактически использовала git, поэтому вред там может быть незначительным и относиться только к «чистой» системе, которая соответствует квитанциям. Вред может состоять в том, что обновление OS X может заменить новый git на более старую версию, поэтому обычная практика заключается в поиске нового двоичного файла вне системного пути.
bmike
3
Я думаю, что было бы намного проще добавить /usr/local/bin(каталог установки homebrew, IIRC) $PATHвперед, /usr/binвместо того, чтобы возиться с переименованием и резервным копированием и т. Д.
MattDMo
1
Установите мерзавца с завариванием, запустите это.
brew link --force git
Закройте и снова откройте терминал для запуска which git.
Я получил ошибку при запуске этого, но brew link --overwrite gitсработало
wickdninja
0
Если вы устанавливаете git напрямую с git-scm.com и хотите использовать последнюю загруженную версию git вместо яблочной (старой) версии git.
Установите git с git-scm.com
Скорее всего, новый 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)
Нажмите Esc
Enter :wq(чтобы сохранить .bashrcфайл)
Выйдите из терминала и запустите новый терминал
Теперь попробуйте git --version(вы должны увидеть новую версию)
Это похоже на две установки. Я думаю, что нормальная (загружаемая) версия git находится в / usr / local / git / ... Тогда возникает вопрос о том, чтобы добавить это к пути или удалить другой (или оба)
Nicholaz
-2
Чтобы обновить что-либо с помощью Homebrew на OSX, которое включает в себя компиляцию с использованием gcc, убедитесь, что у вас есть обновленные инструменты командной строки из XCode - да, я знаю, это ужасно, когда приходится скрывать общесистемный инструмент в настройках приложения.
меры
Зайдите в Xcode.app -> Настройки -> Загрузки
Обновление (или установка) инструментов командной строки
Запустите brew doctorи устраните все другие препятствия
Запустите brew upgradeдля обновления всех пакетов одновременно
Ответы:
Спасибо всем за полезные ответы. В моем случае добавление
в
~/.bash_profile
сопровождениирешил проблему для моего пользователя.
источник
/usr/local/bin
выше/usr/bin
в/etc/paths
.brew doctor
диагностике проблемы/etc/paths
. Определение только «экспорта» может оказаться недостаточным, если оно/usr/bin
имеет «приоритет» над/usr/local/bin
(от brew) ...source ~/.bash_profile
перечитает это. Перезапуск, скорее всего, быстрее / проще. :)Хорошо, я готов серьезно относиться к scm.
Нет, это не то, что я хотел. Я <3 доморощенный, поэтому:
Все готово?
Doh! (царапает голову)
Ах, мерзавец Apple находится в / usr / bin, так что он превосходит доморощенный. Что делать?
(A) Просто переименуйте бинарный файл Apple
(B) Пусть доморощенный человек имеет преимущество:
[редактировать экспорт PATH, например, в ~ / .zshrc (oh-my-zsh + iTerm2 FTW! / tangent)]
[в частности: переместить / usr / local / bin / git: before / usr / bin:]
... и / или (например, чтобы более широко позволить доморощенным вещам перевесить установку системы и иметь приоритет для всех оболочек и пользователей), также отредактируйте файл / etc / paths, [двигающийся / usr / local / bin выше / usr / bin ]
Но предполагая только самый простой / наименее инвазивный подход:
Это сработало?
Пока все хорошо, теперь момент истины:
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
Статус 2019
Все трюки, упомянутые здесь в нескольких ответах, больше не нужны в macOS Sierra & Mojave с последней версией Homebrew. Забудьте
export PATH="..."
и модификации~/.bash_profile
.Вы просто делаете
и вы сделали.
Для подтверждения откройте новое (!) Окно терминала и введите
источник
brew link --overwrite git
работал для меняПосле того, как вы установили последнюю версию git через brew (
brew install git
), запустите эту однострочную версию (как предложеноbrew doctor
), если ее там еще нет:Затем выйдите из терминала и снова откройте его (перезапустите сеанс bash). Вы должны сделать это, даже если ваш PATH уже был корректным, поскольку ZSH и Bash кэшируют содержимое PATH (см. Документацию по встроенной команде
hash
).Это должно исправить вещи очень быстро.
источник
Когда вы печатаете
в Terminal.app или в консоли, ваш комментарий к другому вопросу указал, что версией, которую он возвращает, является git в / usr / bin / git
Если вы установили Xcode 4.5 (и новее), введите
в 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
Я попробовал это, и это работает для меня.
источник
Вы должны переименовать оригинальный git в apple,
/usr/bin/
например, в git-org, так/usr/bin
как обычно он находится/usr/local/bin
в вашем каталоге пути, где находится brew.Так:
и не забудьте связать варево мерзавца
Это предполагает, что
/usr/local/bin
находится в вашей$PATH
переменной среды. Если проблема не устранена, попробуйте запуститьи исправить проблемы, упомянутые там.
источник
/usr/local/bin
(каталог установки homebrew, IIRC)$PATH
вперед,/usr/bin
вместо того, чтобы возиться с переименованием и резервным копированием и т. Д.Установите мерзавца с завариванием, запустите это.
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 предлагает версию, которая, возможно, стоит на вашем пути.
Может быть, набрав
покажет, где старый.
источник
/usr/bin/git
...Чтобы обновить что-либо с помощью Homebrew на OSX, которое включает в себя компиляцию с использованием gcc, убедитесь, что у вас есть обновленные инструменты командной строки из XCode - да, я знаю, это ужасно, когда приходится скрывать общесистемный инструмент в настройках приложения.
меры
brew doctor
и устраните все другие препятствияbrew upgrade
для обновления всех пакетов одновременноисточник