Git 2.35 arrive avec de nouvelles fonctionnalités, des corrections de bogues, et plus encore

Après deux mois de développement, la nouvelle version de Git, la 2.35, a été annoncée. Par rapport à la version précédente, elle intègre 494 modifications et a été élaborée avec la participation de 93 développeurs, dont 35 qui ont contribué au développement pour la première fois.

Quant aux principales innovations de cette nouvelle version, on note les options étendues d'utilisation des clés SSH pour la signature numérique des objets Git.

Pour différencier la période de validité des différentes clés, la prise en charge des directives OpenSSH « valid-before » et « valid-after » a été ajoutée , permettant ainsi de garantir un fonctionnement correct des signatures.

Avant cela, il y avait un problème de séparation des signatures avec l'ancienne clé et la nouvelle : si vous supprimez l'ancienne clé, il sera impossible de vérifier les signatures faites avec, et si vous la laissez, vous serez toujours capable de créer de nouvelles signatures avec l'ancienne clé, qui a déjà été remplacée par une autre clé. Avec valide avant et valide après, vous pouvez séparer la portée des clés en fonction du moment où la signature a été créée.

Une autre nouveauté notable de Git 2.35 est le paramètre `merge.conflictStyle` , qui permet de choisir le mode d'affichage des informations de conflit lors d'une fusion. Il prend désormais en charge le mode « zdiff3 », qui déplace toutes les chaînes de caractères du type spécifié en début ou en fin de conflit hors de la zone de conflit, offrant ainsi un affichage plus compact.

Le mode ` --staged` a été ajouté à la commande ` git stash` , permettant de masquer uniquement les modifications ajoutées à l'index . Ceci est utile, par exemple, lorsque vous devez reporter temporairement des modifications complexes, en validant d'abord les modifications terminées, puis en traitant le reste ultérieurement. Ce mode est similaire à la commande ` git commit` , puisqu'il n'enregistre que les modifications placées dans l'index, mais au lieu de créer un nouveau commit, ` git stash --staged` enregistre le résultat dans la zone de stockage temporaire. Lorsque les modifications sont nécessaires, elles peuvent être annulées avec la commande `git stash pop`.

De plus, nous pouvons constater qu'un nouveau spécificateur de format « --format=%(describe) » a été ajouté à la commande « git log » , permettant à la sortie de « git log » de correspondre à la sortie de la commande « git describe ».

Les options pour "git describe" sont spécifiées directement dans le spécificateur ("–format=%(describe:match= ,exclure= )")), qui peuvent également inclure des balises abrégées ("–format=% ( describe:tags= )») et définit le nombre de caractères hexadécimaux pour identifier les objets.

Par exemple, pour afficher les 8 commits les plus récents dont les balises n'ont pas de balise release candidate et spécifier des identifiants de 13 caractères, vous pouvez utiliser la commande :

Un travail a été fait pour normaliser l'utilisation du type "size_t" au lieu de "unsigned long" pour les valeurs représentant la taille des objets, ce qui permettait d'appliquer les filtres "clean" et "smudge" avec des fichiers de plus de 4 Go sur toutes les plateformes, y compris les plateformes avec le modèle de données LLP64, tapez "unsigned long", qui est limité à 4 octets.

Parmi les autres changements notables de cette nouvelle version, on peut citer :

  • Ajout de la mise en œuvre initiale d'un nouveau backend "rafraichissant» pour stocker des références telles que des branches et des balises dans un référentiel.
  • La palette de couleurs de la commande «git grep» a été modifié pour correspondre à l'utilitaire GNU grep.
  • La commande "initialisation de git sparse-checkout» est obsolète et doit être utilisé à la place «ensemble git sparse-checkout«.
  • Option ajoutée “–empty=(arrêter|déposer|conserver)» à la commande "git suis", qui permet, lors de l'analyse des correctifs depuis la boîte aux lettres, de choisir le comportement des messages vides ne contenant pas de correctifs.
  • Ajout de la prise en charge des index clairsemés pour git reset, git diff, git reproche, git fetch, git pull et git ls-files» pour améliorer les performances et économiser de l'espace dans les référentiels, où les opérations de clonage (sparse-checkout) sont effectuées.

Enfin, si vous souhaitez en savoir plus sur cette nouvelle version de Git 2.35, vous trouverez les détails sur le lien suivant.


Ajouter comme source préférée dans Google