web-dev-qa-db-fra.com

remplacer git de Xcode avec la version homebrew

J'ai installé XCode et donc git est là aussi. Puisque je veux avoir une version plus récente de git, j'ai installé en utilisant homebrew.

Mais la version homebrew de git n'est jamais appelée car mon CHEMIN ressemble à ceci

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

ce qui signifie que le /usr/bin/git est toujours appelé avant /usr/local/bin/git.

Y a-t-il un moyen de changer cela sans changer le CHEMIN?

43
BetaRide

Xcode utilise en fait le GIT qui est stocké dans /Applications/Xcode.app/Contents/Developer/usr/bin. La même version de GIT est installée dans /usr/bin lorsque vous avez installé les outils de ligne de commande dans le cadre de l'installation de Xcode. Ainsi, vous ne pourrez pas modifier ce que Xcode utilise (à moins que vous ne vouliez vous foutre du contenu du package Xcode). Si, à partir d'une application de terminal, vous souhaitez utiliser le GIT installé en homebrew, vous avez deux options:

  1. Référence GIT avec le chemin complet comme /usr/local/bin/git ... Dans ce cas, vous pouvez créer un alias comme alias mgit=/usr/local/bin/git puis utilisez mgit ... depuis le terminal
  2. Modifiez le chemin d'accès par PATH=/usr/local/bin:$PATH soit dans votre .bashrc ou .zshrc si vous utilisez un fichier zsh (ou chaque fois que vous démarrez un terminal sur la ligne de commande).
56
GoZoner

Puisque Xcode a codé en dur sa propre version de git qui est installée sur /Applications/Xcode.app/Contents/Developer/usr/bin/git, J'ai réussi à utiliser cette astuce:

  1. changer dans le répertoire Xcode:

    cd /Applications/Xcode.app/Contents/Developer/usr/bin

  2. renommer le git du Xcode comme ceci:

    Sudo mv ./git ./git-xcode-usr-bin

  3. lier mon propre git qui est installé via homebrew:

    Sudo ln -s /usr/local/bin/git ./git

Et j'ai fait la même chose avec /usr/bin/git

Cela liera effectivement /usr/local/Cellar/git/1.8.0/bin/git (car j'utilise git 1.8.0 actuellement)

Cela peut certainement causer d'autres problèmes, comme lorsque je mets à jour le verion git de l'homebrew à l'avenir, cela ne fonctionnera pas pour moi :( et je dois alors créer un nouveau lien.

Je le fais comme ça parce que je veux résoudre mon propre problème ici 131772 . Et après une longue recherche sur StackOverFlow, j'ai finalement obtenu cette solution.

14
oppih

Si vous utilisez fish Shell au lieu de bash, vous pouvez pointer vers votre binaire git préféré en ajoutant ce qui suit à ~/.config/fish/config.fish.

function git
  /usr/local/bin/git $argv; 
end
8
Paul Wenzel