Comment mettre à niveau Git vers la dernière version sur macOS?

165

Je viens d'acheter un nouveau Mac avec OS X Lion et j'ai vérifié dans le terminal quelle version de git est installée par défaut. J'ai la réponse

git --version
> git version 1.7.5.4

Je voudrais mettre à jour git vers la dernière version 1.7.8.3, j'ai donc téléchargé le programme d'installation de dmg "git-1.7.8.3-intel-universal-snow-leopard.dmg" et je l'ai lancé.

Après l'installation, le terminal indique toujours que la version est 1.7.5.4. Qu'est-ce que je fais mal?

Nicolas Renon
la source
4
Tapez which gitpour voir où se trouve le binaire. Est-ce le même endroit où vous avez installé le nouveau?
Greg Hewgill
4
Cela dit /usr/bin/gitpour la 1.7.5.4, mais comment puis-je savoir où le DMG a installé la nouvelle version? Pourquoi ne met-il pas à niveau / n'écrase pas automatiquement la version précédente? Si je veux utiliser la nouvelle, comment puis-je lier la gitcommande à la nouvelle version? (merci pour votre réponse très rapide au fait!)
Nicolas Renon
1
sur mon mac (os 10.6.8), l'ancien git 1.7.5.4 vit dans / usr / bin / git tandis que le nouveau programme d'installation de git 1.7.11.3 place git dans / usr / local /
miker
Je me demande si superuser.com/a/580611/74576 est une bonne approche. Je souhaite que je pourrais comprendre les commandes pour cela.
Ryan
J'ai fait une entrée dans .bash_profile au lieu de .bashrc et cela a fonctionné. Je pense que si votre terminal fonctionne en tant que "Shell de connexion par défaut", cela se produit.
Swapnil Chincholkar

Réponses:

58

Ce serait probablement mieux si vous ajoutiez:

export PATH=/usr/local/git/bin:/usr/local/sbin:$PATH

dans un fichier nommé .bashrc dans votre dossier personnel. De cette façon, tout autre logiciel que vous pourriez installer /usr/local/git/binsera également trouvé en premier.

Pour un moyen facile de le faire, tapez simplement:

echo "export PATH=/usr/local/git/bin:/usr/local/sbin:$PATH" >> ~/.bashrc

dans le terminal et il le fera pour vous.

kmikael
la source
1
Comme le dit le README.txt, git est installé dans / usr / local / git.
bananaaus
18
L'astuce pratique de kmikael est juste pour la fête. (Pour changer le shell par défaut de mac, déverrouillez les comptes ou la fenêtre "utilisateurs et groupes" dans les préférences système, contrôle-cliquez sur le compte pour les "options avancées".) Une suggestion utilisant bash_profile au lieu de bashrc, par exemple echo 'export PATH="/usr/local/git/bin:/usr/local/sbin:~/bin:$PATH"' >> ~/.bash_profilesur moncefbelyamani.com . La discussion sur l'opportunité d'ajouter à .bash_profile ou .bashrc est sur superuser.com
miker
Qu'avez-vous utilisé pour installer git? Je viens de vérifier la dernière version, le programme d'installation officiel installe ici git /usr/local/git/bin/git, ce qui signifie que la méthode ci-dessus devrait toujours fonctionner sur 10.8.4.
kmikael
Merci @miker, cela a fonctionné pour moi avec .bash_profile, mais pas .bashrc.
adimauro
J'ai décoché cette solution, même si cela fonctionne. Veuillez lire ma mise à jour de mon message pour l'explication.
Nicolas Renon
52

C'est simple si vous avez déjà Homebrew : en supposant que vous avez installé homebrew, tapez ce qui suit:

brew install git

Une fois qu'il est installé, tapez les deux lignes suivantes, qui définiront notre chemin vers la distribution git locale au lieu de celle d'Apple.

export PATH=/usr/local/bin:$PATH
git --version

SI VOUS N'AVEZ PAS HOMEBREW, SUIVEZ CES ÉTAPES Vérifiez la version

$ git --version

Sauvegarder (ou supprimer) Apple git (facultatif)

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

Installez Homebrew si vous n'aviez pas

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Ou mettez à jour si vous avez déjà

$ brew update && brew upgrade

Installez Git avec Homebrew

$ brew install git

Lien symbolique

$ brew link --force git

Fermez le terminal et rouvrez puis vérifiez la version

$ git --version

Tu devrais voir…

git version <latest version>

Agréable! Nous sommes en sécurité maintenant! Et la prochaine fois, vous pourrez simplement…

$ brew update && brew upgrade

kvm006
la source
10
Concernant sudo mv /usr/bin/git /usr/bin/git-apple: le changement de nom du système git ne fonctionnera pas sur macOS El Capitan et versions ultérieures, sauf si vous désactivez la protection de l'intégrité du système comme décrit ici apple.stackexchange.com/a/248229/16290 . Personnellement, je viens de mettre à jour mon PATHpour que cela /usr/local/binarrive avant /usr/bin. De cette façon, le git de Homebrew a toujours la priorité (après la fermeture du terminal et la réouverture). Pour les vulnérabilités de sécurité git, Apple mettra éventuellement à jour git avec leurs mises à jour de sécurité. En attendant, on peut simplement éviter d'utiliser le git intégré en configurant PATH comme décrit.
Nate Cook
16

Après avoir recherché "Problème de mise à niveau de git sur mac" sur Google, j'ai lu plusieurs articles et tenté ce qui suit avant de résoudre le problème en effectuant l'étape 4:

  1. J'ai mis à jour le chemin de mon terminal en utilisant la commande d'exportation de mention ci-dessus. Chaque fois que je quitte le terminal et que je le redémarre, lorsque j'ai tapé git --versionle terminal, il renvoie toujours l'ancienne version 1.8.

  2. J'ai suivi les instructions README.txt pour la mise à niveau vers la version actuelle 2.0.1 fournie avec le programme d'installation .dmg et lorsque j'ai redémarré le terminal, toujours pas.

  3. J'ai recherché le dossier / etc / path / comme indiqué ci-dessus et le répertoire appelé "chemin" n'existe pas sur mon Mac. J'utilise OS X Mavericks version 10.9.4.

  4. Ensuite, je me suis souvenu que Homebrew était installé sur mon Mac et j'ai exécuté ce qui suit:

    brew --version
    brew update
    brew search git
    brew install git
    

Cela a finalement résolu mon problème. Si quelqu'un a une idée de la raison pour laquelle cela a fonctionné, un aperçu supplémentaire serait grandement apprécié. Il me reste probablement des paramètres de chemin d'accès sur mon système après avoir travaillé avec Ruby l'année dernière.

Shaun anglais
la source
1
J'avais déjà installé git. Donc, en suivant la dernière étape, brew install gitj'ai reçu un message d'erreur et il m'a suggéré d'exécuter la brew upgrade gitcommande à la place. Tu es l'homme! Cela a fait tout simplement l'affaire :)
Pathros
15

J'ai récemment mis à niveau le Git de ma machine OS X vers la dernière version. Je n'ai pas utilisé le même que .dmgvous avez utilisé, mais lorsque je l'ai installé, les binaires ont été placés /usr/local/bin. Maintenant, la façon dont mon a PATHété organisé, le répertoire /usr/binapparaît avant /usr/local/bin. Donc ce que j'ai fait était:

cd /usr/bin
mkdir git.ORIG
mv git* git.ORIG/

Cela déplace les plusieurs programmes d'origine nommés git*dans un nouveau sous-répertoire qui les maintient à l'écart. Après cela, which gitmontre que celui dans /usr/local/binest trouvé.

Modifiez la procédure ci-dessus si nécessaire pour l'adapter à l'endroit où vous avez installé les nouveaux binaires.

Greg Hewgill
la source
2
Merci! En fait, les nouveaux binaires ont été placés dans /usr/local/git.
Nicolas Renon
1
Remarque: j'ai dû redémarrer Terminal pour voir le nouveau git. Cela semble évident mais m'a confondu au début.
migg
15

si vous utilisez homebrew, vous pouvez mettre à jour les liens sim en utilisant

brew link --overwrite git
rafaecheve
la source
J'ai essayé toutes les autres réponses ci-dessus et c'est ce qui m'a finalement mis en place avec la dernière version de git. l'exécution brew install gitm'a permis d' obtenir la dernière version, mais cela n'a pas configuré le lien symbolique correctement. l'exécution brew link gitm'a donné une erreur disant qu'il ne pouvait pas créer de lien symbolique git car il existait déjà. enfin courir brew link --overwrite gitmettre le clou dans le cercueil alors git --versionmontre maintenant que je suis sur la version la plus à jour de git
Gharbad The Weak
7

Le programme d'installation de la page d'accueil de git s'installe /usr/local/gitpar défaut dans. Cependant, si vous installez XCode4 , il installera une version git dans /usr/bin. Pour vous assurer de pouvoir facilement mettre à niveau depuis le site Web et utiliser la dernière version de git, modifiez les informations de votre profil à placer /usr/local/git/binavant /usr/bindans $ PATH ou modifiez /etc/pathset insérez /usr/local/git/bincomme première entrée.

Cela peut aider quelqu'un, au moins changer l'ordre dans / etc / chemins a fonctionné pour moi.

Mohammad Arif
la source
7

Pour moi, avec Homebrew 1.6.7, ce qui suit a fonctionné:

brew upgrade git
Karolis Šarapnickis
la source
6

J'ai utilisé ce qui suit pour mettre à niveau git sur mac.

hansi$ brew install git 

hansi$ git --version 
git version 2.19.0


hansi$ brew install git
Warning: git 2.25.1 is already installed, it's just not linked
You can use `brew link git` to link this version.

hansi$ brew link git 
Linking /usr/local/Cellar/git/2.25.1... 
Error: Could not symlink bin/git
Target /usr/local/bin/git
already exists. You may want to remove it:
  rm '/usr/local/bin/git'

To force the link and overwrite all conflicting files:
  brew link --overwrite git

To list all files that would be deleted:
  brew link --overwrite --dry-run git

hansi$ brew link --overwrite git 
Linking /usr/local/Cellar/git/2.25.1... 205 symlinks created


hansi$ git --version
git version 2.25.1
Janesh Kodikara
la source
dans mon cas, j'avais déjà installé git, et je l'ai réinstallé en utilisant homebrew qui a téléchargé une version plus récente, mais elle n'était pas liée correctement. J'ai fini par devoir dissocier manuellement, puis relier puis cela a fonctionné. J'avais également besoin de rouvrir ma session de terminal pour qu'il trouve la nouvelle version au lieu de l'ancienne version / système: brew unlink git && brew link git && source ~/.bashrc
FireDragon
5

le moyen le plus simple que j'ai trouvé jusqu'à présent est le site officiel de git. Il a juste calculé les dépendances et téléchargé toutes les bibliothèques / outils requis

http://git-scm.com/book/en/Getting-Started-Installing-Git

L'autre moyen majeur est d'installer Git via MacPorts ( http://www.macports.org ). Si vous avez installé MacPorts, installez Git via

$ sudo port installer git-core + svn + doc + bash_completion + gitweb

Gamin
la source
2

Afin de conserver les deux versions, je viens de changer la valeur de la variable d'environnement PATH en mettant le chemin git de la nouvelle version "/ usr / local / git / bin /" au début, cela oblige à utiliser la dernière version:

$ echo $ PATH

/ usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin: / usr / local / git / bin /

$ git --version

git version 2.4.9 (Apple Git-60)

valeur d'origine: / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin: / usr / local / git / bin /

nouvelle valeur: / usr / local / git / bin / : / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin

$ export PATH = / usr / local / git / bin /: / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin

$ git --version

git version 2.13.0

Sandro E Martínez
la source
1

Sans Homebrew

  1. Utilisez le programme d' installation du site Web de git.
  2. Mettez à jour votre ~/.bash_profilefichier. Notez que cette commande diffère de la réponse de kmikael par ce qu'elle met dans le fichier:
    • Autre commande: export PATH=/usr/local/git/bin:/usr/local/sbin/:[and so on]
    • Commande ci-dessous: export PATH="/usr/local/git/bin:/usr/local/sbin:$PATH"
    • Utilisez celui que vous préférez.

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

  1. Si vous utilisez Xcode, vous devrez ajouter des liens symboliques .
    • Exemple: ln -s /opt/local/bin/git /usr/bin/git
  2. Redémarrez le terminal.
    • which gitdevrait dire le répertoire dans le README.txtfichier du dmg.
    • git --version devrait dire la version mise à jour.
    • echo $PATH devrait commencer par /usr/local/git/bin:/usr/local/sbin:
GreeKatrina
la source
0

Je préfère ne pas modifier la hiérarchie des chemins, mais plutôt traiter spécifiquement de git ... sachant que je n'utiliserai jamais l'ancien git pour faire ce que le nouveau git va gérer . C'est une solution de force brute.

NOTE: J'ai installé XCode Yosemite (10.10.2) propre premier .

J'ai ensuite installé à partir du binaire disponible sur git-scm.com .

$ which git
/usr/bin/git
$ cd /usr/bin
$ sudo ln -sf /usr/local/git/bin/git
$ sudo ln -sf /usr/local/git/bin/git-credential-osxkeychain
$ sudo ln -sf /usr/local/git/bin/git-cvsserver
$ sudo ln -sf /usr/local/git/bin/git-receive-pack
$ sudo ln -sf /usr/local/git/bin/git-shell
$ sudo ln -sf /usr/local/git/bin/git-upload-archive
$ sudo ln -sf /usr/local/git/bin/git-upload-pack
$ ls -la
(you should see your new symlinks)
azatar
la source
0

Je l'ai fait de cette manière:

  1. Ouvrez l'application GitHub installée sur Mac
  2. Cliquez sur l'onglet Avancé → Installer les outils de ligne de commande
  3. Une fois que vous recevez un message indiquant que toutes les commandes ont été installées, fermez votre terminal et rouvrez-le.
  4. Maintenant, vérifiez git --version, il devrait vous donner la dernière version.
Waaheeda
la source
0

Vous devez ajuster le chemin du shell, le chemin sera défini dans .bashrc ou .bash_profile dans votre répertoire personnel, plus probablement .bash_profile

Alors ajoutez dans le chemin similaire à celui ci-dessous et conservez ce que vous avez déjà dans le chemin, chaque segment est séparé par un deux-points:

export PATH = "/ usr / local / bin: / usr / bin / git: / usr / bin: / usr / local / sbin: $ PATH"

Windy71
la source
0

La dernière version n'était pas disponible en tant que binaire pour mac sur git-scm.com, j'ai donc installé à partir des sources. Il me manquait un package requis pour la localisation, et ajouté NO_GETTEXT=truepour installer sans localisation.

git clone https://github.com/git/git.git
cd git
make NO_GETTEXT=true
make NO_GETTEXT=true install

Ceci installé gitsous ~/binlequel je devais ensuite ajouter au début de ma PATHvariable.

Tmarty
la source