Quoi de neuf dans Git 2.34 et 2.35 ?
Par Maxime Bréhin • Publié le 10 février 2022 • 3 min

Git 2.34 (novembre 2021) et Git 2.35 (janvier 2022) nous apportent quelques nouveautés sympathiques, et comme toujours, des améliorations de performance. Je t’ai préparé une petite sélection des trucs que j’ai trouvés cool 🤩.

Tu préféres une vidéo ?

Tu as la flemme de lire, pas de soucis, je t’ai préparé un résumé en vidéo :

Git 2.34

Je commence par la version la plus ancienne, mais surtout celle qui apporte le plus de nouveautés !

Auto-correction interactive des commandes

Là je suis fan 🤩 ! Comme moi, tu souffres peut-être du « syndrome des moufles »™ quand tu tapes dans le terminal : tu manques des touches et saisis de travers tes commandes (« git pish » ou le célèbre « git vommit » 🤮).

Chat tapant au clavier

Depuis un petit moment Git nous conseille la bonne commande via un petit texte juste après notre échec, et pouvait même l’exécuter automatiquement, si tu avais opté pour ce comportement. Mais Git 2.34 va plus loin et nous permet d’activer le prompt interactif :

git config --global help.autoCorrect prompt

Nouvelle stratégie de fusion par défaut

La stratégie de fusion par défaut a été changée de « recursive » à « ort », youhou 🙌 !! Bon OK, comme ça, il y a peu de chances que ça te parle. La stratégie ORT (pour “Ostensibly Recursive’s Twin”), comme son nom l’indique, est la stratégie jumelle de Recursive. « À quoi bon remplacer une stratégie par une autre identique ? » me diras-tu. Eh bien, pour deux raisons majeures :

  • Recursive était devenue quasi impossible à maintenir en raison de son code légataire ;
  • les performances méritaient d’être améliorées (les heuristiques restent inchangées, c’est l’implémentation et donc l’exécution qui posaient problème).

Pour te donner une idée des gains de performance, cette stratégie est :

  • jusqu’à 500 fois plus rapide pour une fusion contenant des renommages ;
  • jusqu’à 9 000 fois (tu as bien lu) plus rapide pour une série de fusions similaires, comme dans un rebase par exemple (grâce à la mise en cache et la réutilisation des résultats de fusions précédentes).

Surlignage du log en mode --grep

Ça a toujours manqué dans Git : le surlignage des termes recherchés dans les messages de commit via l’option --grep est enfin arrivé !

# `demo` est le terme recherché
git log --grep=demo

Rendu du surlignage de

🪦 RIP --preserve-merges

Après des années de bons et loyaux services, l’option --preserve-merges dépréciée de la commande rebase a définitivement été retirée de Git. Ne sois pas triste 😿, sa remplaçante est là depuis un moment 😹 : --rebase-merges. L’intention finale reste la même puisqu’on reproduit nos fusions locales lors du rebase. Si te ne comprends pas ce que je raconte, tu peux regarder du côté de notre article « Bien utiliser Git merge et rebase ».

Signer avec des clés SSH

Peut-être as-tu déjà travaillé avec des projets dont les contenus (commits/tags) étaient certifiés par signature numérique, via des clés GnuPG. Cette signature est désormais possible avec des clés SSH (seulement à partir d’OpenSSH 8.8).

Voici une idée de ce que donnent des commits signés dans GitHub :

Affichage d’une pastille "vérifié" pour les commits signés

En vrac

Comme toujours on bénéficie de différentes optis, principalement concernant la performance, mais aussi concernant les submodules, la doc’…

Côté perf’, on bénéficie d’une amélioration du sparse-checkout, très utile pour optimiser le travail avec les mono-repo massifs (datant de Git 2.25).

La commande rebase nous donne une information plus claire lorsqu’elle ne rejoue pas certains commits dont le contenu est déjà présent (skip).

Si tu es curieux·se, tu peux aller creuser les release notes.

Git 2.35

Une seule nouveauté a retenu mon attention dans cette version : la possibilité de mettre de côté dans le stash uniquement ce qu’on a stagé (ce qu’on a préparé pour notre prochain commit avec un git add).

git stash --stage

Là aussi tu peux regarder les release notes.

Tu veux aller plus loin et maîtriser pleinement les fondamentaux de Git ou être accompagné pour garantir la qualité de tes projets grâce à une bonne mise en place de Git ? On peut t’aider ou te former, il suffit de nous décrire ton besoin !