Comment utiliser le git installé sur Mac sous Homebrew?


116

J'ai installé la dernière version de git (1.8.3) en utilisant homebrew mais quand je tape

git --version

dans mon terminal, il affiche:

git version 1.7.10.2 (Apple Git-33)

Que dois-je faire pour remplacer l'ancienne version de git par la nouvelle?


2
Vous avez quelques bonnes réponses - alors je voulais commenter la question. Cherchez-vous des instructions explicites pour installer git à partir des sources de homebrew ou d'un client à interface graphique, ou simplement une confirmation que OS X intègre plusieurs versions de git avec le système d'exploitation principal? opensource.apple.com/source/Git (FWIW - Le dernier bundle Apple que j'ai vu à ce jour est le 1.7.12.4 qui provient de Git-37)
bmike

Réponses:


106

Merci à tous pour des réponses utiles. Dans mon cas, ajouter

export PATH="/usr/local/bin:${PATH}"

en ~/.bash_profilesuivi

source ~/.bash_profile

résolu le problème pour mon utilisateur.


17
Si vous souhaitez que la modification soit persistante pour tous les utilisateurs, vous pouvez vous déplacer plus /usr/local/binhaut /usr/bindans /etc/paths.
kevin

3
C'est la solution proposée par Homebrew elle-même lors de l'exécution brew doctorpour diagnostiquer le problème
VoxPelli

1
cette réponse devrait être mise à jour avec la solution de définition proposée par KevinT /etc/paths. Définir uniquement "l'exportation" peut ne pas suffire, si la /usr/bin"priorité" est /usr/local/bin
appliquée

8
N'oubliez pas de redémarrer le terminal! Je ne me suis pas rendu compte avant d'avoir vu le commentaire de Juan Diego Gonzales ci
Souleiman

2
@Souleiman: Le redémarrage n'est pas nécessaire. source ~/.bash_profileva relire cela. Le redémarrage est probablement plus rapide / facile. :)

44

Ok, je suis prêt à devenir sérieux à propos de scm.

$ git --version
git version 1.9.5 (Apple Git-50.3)

Non, ce n'est pas ce que je voulais. Je <3 homebrew, donc:

$ brew install git

Tous ensemble?

$ git --version
git version 1.9.5 (Apple Git-50.3)

Doh! (gratte la tête)

$ which git
/usr/bin/git

Le git d'Apple est dans / usr / bin, il l'emporte donc sur l'homebrew. Que faire?

(A) renommer le binaire d'Apple

(B) Laisser la gestion gérée par un homebrew prioritaire:

[modifier l'export PATH par exemple dans ~ / .zshrc (oh-my-zsh + iTerm2 FTW! / tangent)]

[spécifiquement: déplacez / usr / local / bin / git: avant / usr / bin:]

... et / ou (par exemple, pour permettre plus généralement aux installations du système homebrew trump et de faire en sorte que la priorité soit appliquée à tous les shells et utilisateurs), éditez également le fichier / etc / path, [en déplaçant / usr / local / bin au-dessus de / usr / bin ]

Mais en supposant l’approche la plus simple et la moins invasive:

$ sudo mv /usr/bin/git /usr/bin/git-apple

Cela a-t-il fonctionné?

$ which git
/usr/local/bin/git

Jusqu'ici tout va bien, maintenant le moment de vérité:

$ git --version
git version 2.2.1

w00t! :) Il est temps d'aller lire http://git-scm.com ! :)


PS Rel aux commentaires sur les risques de l'édition de / usr / bin: IMHO c'est NBD. (Bien que j'aime bien la suggestion du nomade Global de faire "sudo ln -s / usr / local / bin / git / usr / bin / git" ... ce qui garantit que tout ce qui est appelé "/ usr / bin / git" sera explicitement obtenu. Si vous gérez votre compte de brasseur, mais selon moi, installer git implique que vous en preniez la propriété sur votre système. Les inquiétudes relatives aux processus inconnus utilisant une version plus ancienne et plus alternative de git risquent d’être égarées. Je vous recommande de vous tenir au courant des actualités. Les versions de git (pour la sécurité, pas seulement pour les fonctionnalités), et pour la gestion vous-même. Homebrew rend cela facile. /$0.02
cweekly

Cela n'a pas fonctionné pour moi, pour l'annuler, il suffit de faire: sudo mv / usr / bin / git-apple / usr / bin / git. Le commentaire de Juan Diego Gonzales a fonctionné. (en gros, suivez la réponse acceptée puis redémarrez le terminal).
Souleiman

Même en which gitmontrant /usr/local/bin/git, cela ne fonctionnait pas pour moi. Pour résoudre ce problème, j'ai dû désinstaller l'application Mac GitHub.
Ben

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
Vladislav Rastrusny le

Ces jours-ci, il semble que l'homebrew se mette au "devant" du PATH, alors espérons que ce n'est plus nécessaire :)
rogerdpack

32

Statut 2019

Toutes les astuces mentionnées ici dans plusieurs réponses ne sont plus nécessaires sur macOS Sierra & Mojave avec le dernier Homebrew. Oublier export PATH="..."et modifications à ~/.bash_profile.

Vous faites simplement

brew install git

et votre fait.

Pour confirmer, ouvrez une nouvelle fenêtre de terminal (!) Et tapez

git --version

16
Je pense que c'est correct, mais vous devez ouvrir un nouveau terminal ou le changement n'est pas pris en compte
robjwilkins le

Cela ne fonctionne pas pour moi malheureusement.
rsp1984

2
Cela a fonctionné pour moi sur Mojave. Je ne dois ouvrir un nouveau terminal.
Craig Otis le

2
brew link --overwrite gita travaillé pour moi
wickdninja

9

Une fois que vous avez installé le dernier git via brew ( brew install git), lancez ce one-liner (comme suggéré par brew doctor) si ce n’est pas déjà fait:

echo "export PATH=/usr/local/bin:$PATH" >> ~/.bash_profile

Puis quittez Terminal et ouvrez-le à nouveau (redémarrez votre session bash). Vous devez le faire même si votre PATH était déjà correct, car ZSH et Bash mettent en cache le contenu de PATH (voir la documentation sur la commande intégrée hash).

Cela devrait régler les choses très vite.


1
Comment cela diffère-t-il de la réponse acceptée?
user151019

6
Dans mon cas, je ne savais pas que je devais redémarrer Terminal, cette partie pourrait donc aider certaines personnes. Est plus rapide que l'acceptation en raison de la doublure. Si c'est une compétition, je pense que ma réponse est mal placée. Sinon, je pense que cela contribue. (Dites-moi si vous voulez que je fasse une édition au lieu de cela).
Juan Diego Gonzales

Vous faites cette doublure lorsque vous installez Homebrew
user151019

7
J'ai trouvé cette réponse utile. Le redémarrage du terminal est une question peu évidente pour de nombreuses personnes non familiarisées avec le fonctionnement de .bash_profile et un rappel gentil pour le reste de nous.
Magne

@JuanDiegoGonzales Excellente observation! Je me demandais exactement la même chose après avoir installé git et je ne savais pas pourquoi. Après le soupçon de cache , j'ai fait un peu de recherche: unix.stackexchange.com/q/5609/52921
kstratis

4

Quand vous tapez

git --version

dans Terminal.app ou la console, votre commentaire sur une autre question indique que la version renvoyée est le git dans / usr / bin / git

Si vous avez installé Xcode 4.5 (et plus récent) et avez tapé

xcrun git --version

dans Terminal.app ou la console, la version renvoyée est le git du bundle d’applications Xcode.

Si vous utilisez Homebrew pour installer et mettre à jour git, la solution la plus simple consiste à:

  1. assurez-vous que vous avez les droits d'administrateur car on vous demandera le mot de passe de l'administrateur
  2. renommer l'emplacement d'origine en le renommant à l'aide de mv. Par exemple

    sudo mv / usr / bin / git / usr / bin / git-ORIGINAL

  3. Créez un lien souple en utilisant "ln -s" vers le binaire git que vous avez installé avec Homebrew.

Notez que MattDMo a une meilleure solution dans les commentaires.


Est-ce 100% sûr? Va-t-il casser quelque chose de mac lié?
Levani

Si vous suivez les étapes décrites ci-dessus, la solution ne cassera rien de ce qui est pré-installé car ces exécutables git ne sont pas supprimés. C’est pourquoi, à l’étape 2, vous devriez renommer votre répertoire / usr / bin / git d’origine, par exemple, en /usr/bin/git.BACKUP
Nomade global le

10
Ne faites pas cela - vous ne devriez vraiment pas vous perdre /usr/bin, car il est possible que d'autres programmes que vous ne connaissez même pas dépendent des aléas associés à une version particulière. La solution la plus simple, sans rien déplacer, est d’ajouter /usr/local/binà votre $PATHvariable d’environnement avant /usr/bin- IIRC, l’homebrew s’installe sur/usr/local/bin
MattDMo

Merci @MattDMo, cela semble être la meilleure approche dans ce cas.
Levani


1

Vous devez renommer le git original par apple dans, /usr/bin/par exemple, git-org car il se /usr/bintrouve normalement avant /usr/local/bindans votre répertoire de chemin où se trouvent les informations de brassage.

Alors:

cd /usr/bin
sudo mv git git-org

et ne pas oublier de lier le breuvage git

brew link git

Cela suppose que cela se /usr/local/bintrouve dans votre $PATHvariable d’environnement. Si vous avez toujours un problème, essayez de courir

brew doctor 

et résoudre les problèmes mentionnés ici.


3
Ne renommez pas ou ne modifiez pas les éléments dans / usr / bin, car cela pourrait casser les éléments Apple et ils seront modifiés lorsque vous effectuez une mise à jour du système ou de XCode. utiliser le chemin qui est ce pour quoi il est conçu,
user151019

@Marque vous avez un point. Mais je ne crois pas que vous aurez des problèmes si vous ne changez que git dans / usr / bin. Pour moi ça marche depuis plusieurs mois.
Pfitz

Je conviens que changer normalement dans / usr / bin est une mauvaise nouvelle, mais je ne me souviens pas que OS X ait utilisé git. Le problème est peut-être minime et concerne uniquement un système "propre" qui correspond aux reçus. Le problème serait qu'une mise à jour vers OS X pourrait remplacer le nouveau git par une version plus ancienne, d'où la pratique habituelle consistant à localiser un nouveau fichier binaire en dehors de l'emplacement du chemin système.
bmike

3
Je pense que ce serait beaucoup plus facile d'ajouter /usr/local/bin(Homebrew Installons répertoire, IIRC) à l' $PATHavant au /usr/binlieu de bidouiller avec changement de nom et la sauvegarde, etc.
MattDMo

1

Installez git avec le brassage, exécutez ceci.

brew link --force git

Fermez et rouvrez le terminal pour fonctionner which git.


1
Comment cela change-t-il le chemin par défaut?
user151019

Cela a fonctionné pour moi pour remplacer le git de xcode.
surjikal

J'ai eu une erreur en cours d'exécution mais brew link --overwrite git
j'ai

0

Si vous installez git directement à partir de git-scm.com et voudriez utiliser la dernière version téléchargée de git au lieu de la version (ancienne) apple de git.

  1. Installez git à partir de git-scm.com
  2. Très probablement, un nouveau git sera installé dans /usr/local/bin/git
  3. Essayez git --version, si elle retourne l'ancienne version d'Apple de git, procédez comme suit.
  4. cd ~ (changez de répertoire dans votre répertoire personnel)
  5. type vi .bashrc
  6. Utiliser i(pour insérer du texte dans l'éditeur vi)
  7. Si vous trouvez une ligne avec export PATH......., appuyez sur entrée en haut de l'exportation et tapez ce qui suit: export PATH=/usr/local/:$PATH(Soyez extrêmement prudent avec la PATHvariable, ne gâchez pas cela, sinon cela causera des problèmes pour votre système d'exploitation) (j'espère que le nouveau git devrait être installé /usr/local/git)
  8. Presse esc
  9. Entrez :wq(pour enregistrer le .bashrcfichier)
  10. Sortez du terminal et démarrez un nouveau terminal
  11. Maintenant, essayez git --version(vous devriez voir la nouvelle version)

-1

Cela dépend d'où votre git vient. Xcode apporte une version par exemple, peut-être que c'est dans votre chemin.

Peut-être en tapant

which git

montrera où l'ancien est.


c'est dans /usr/bin/git...
Levani

2
Cela ressemble à deux installations. Je pense que la version normale de Git (téléchargeable) se trouve dans / usr / local / git / ... C'est ensuite une question d'ajout de cela au chemin ou de suppression de l'autre (ou des deux)
Nicholaz

-2

Pour mettre à niveau tout ce qui utilise Homebrew sous OSX et qui nécessite une compilation avec gcc, assurez-vous que vous disposez des outils de ligne de commande mis à jour de Xcode.

Pas

  1. Allez dans Xcode.app -> Préférences -> Téléchargements
  2. Mettre à jour (ou installer) les outils de ligne de commande
  3. Exécuter brew doctoret corriger tous les autres obstacles
  4. Exécuter brew upgradepour mettre à jour tous les paquets à la fois
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.