remplacer git de Xcode avec la version homebrew

J’ai installé XCode et donc git est là aussi. Depuis que je veux avoir une nouvelle version de git je installé en utilisant homebrew.

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

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

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

Est-il possible de changer cela sans changer le PATH?

Xcode utilise en fait le GIT 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 changer ce que Xcode utilise (à moins que vous ne vouliez vous contenter du contenu du paquet Xcode). Si, à partir d’une application de terminal, vous souhaitez utiliser le GIT installé dans votre homebrew, vous avez deux options:

  1. Référencez GIT avec le chemin complet sous la forme /usr/local/bin/git ... Dans ce cas, vous pouvez créer un alias comme alias mgit=/usr/local/bin/git , puis utiliser mgit ... partir du terminal
  2. Modifiez le chemin comme PATH=/usr/local/bin:$PATH dans votre .zshrc .bashrc ou .zshrc si vous utilisez le fichier zsh (ou chaque fois que vous démarrez un terminal sur la ligne de commande).

Puisque Xcode a codé sa propre version de git 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 de 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 permettra de lier effectivement /usr/local/Cellar/git/1.8.0/bin/git (parce que j’utilise git 1.8.0 actuellement)

Certes, cela pourrait causer d’autres problèmes, comme lorsque je mettrai à jour le verion git de l’homebrew à l’avenir, cela ne fonctionnerait 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 13177203 . Et après la recherche StackOverFlow depuis longtemps, j’ai finalement obtenu cette solution.

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

 function git /usr/local/bin/git $argv; end