AccueilActualités informatiqueGestion des versions : Git 2.35 simplifie la réinitialisation des modifications

Gestion des versions : Git 2.35 simplifie la réinitialisation des modifications

La version 2.35 du gestionnaire de versions Git est sortie. Cette version permet de reporter les modifications dans la zone de staging et apporte des améliorations au niveau du logging et de l’interaction avec le Sparse-Enabled Index. Un nouveau paramètre doit en outre rendre plus claire la gestion des conflits de fusion.

Sommaire

La commande git stash réinitialise temporairement toutes les modifications apportées à la copie de travail, ce qui peut s’avérer utile pour éviter d’avoir à effectuer des modifications avant le lancement effectif de la copie de travail. git commit d’autres tâches sont effectuées. La version 2.35 introduit un nouveau mode : git stash --staged ne remet à zéro que les modifications qui se trouvent actuellement dans la zone de staging. C’est là que sont stockés les contenus qui doivent être intégrés dans le prochain commit.

De cette manière, il est plus facile de ne mettre dans la pile que les modifications prévues pour le commit, au lieu de les mettre en mémoire via la commande git stash -p manuellement. Plus tard, elles peuvent être sélectionnées via git stash pop pour les récupérer dans la base de données et les utiliser ensuite avec git commit dans le référentiel.

Depuis la version 2.33, publiée en août 2021, Git peut gérer la sortie de git log avec celle de git describe peuvent être combinées. Pour cela, il existe quelques possibilités de filtrage, auxquelles la version 2.35 ajoute des paramètres supplémentaires : elle peut ainsi ne contenir que des tags légers ('%(describe:tags=<bool>)'), et la longueur des chiffres hexadécimaux pour les hachages peut être modifiée via %(describe:abbrev=<n>) pour définir la taille du hachage.

Les détails se trouvent dans la Pull Request correspondante, et un article de blog sur GitHub montre l’utilisation de la commande combinée raccourcie

$ git log -8 --format='%(describe:exclude=*-rc*,abbrev=13)'
v2.34.1-646-gaf4e5f569bc89
v2.34.1-644-g0330edb239c24
v2.33.1-641-g15f002812f858
v2.34.1-643-g2b95d94b056ab
v2.34.1-642-gb56bd95bbc8f7
v2.34.1-203-gffb9f2980902d
v2.34.1-640-gdf3c41adeb212
v2.34.1-639-g36b65715a4132

comme raccourci des commandes combinées pour log et describe:

$ git log -8 --format='%H' | xargs git describe 
  --exclude='*-rc*' --abbrev=13

La version introduit également un complément permettant de détecter et de résoudre les conflits de fusion : Le paramètre merge.conflictStyle connaît désormais le mode zdiff3. Il montre comment diff3 les modifications respectives qui provoquent le conflit, ainsi que la base de la fusion.

Le « z » dans zdiff3 signifie « zealous », ce qui peut être traduit par zélé : Le mode tente avec zèle de mettre en avant les points communs des changements à l’origine du conflit et de concrétiser ainsi les différences.

En outre, la version apporte quelques compléments dans l’interaction avec l’index sparse-enabled introduit dans la version 2.34. Les développeurs peuvent désormais l’utiliser avec les commandes git reset, git diff, git blame, git fetch, git pull utiliser

D’autres nouveautés de Git 2.35 – comme entre autres la signature avec des clés SSH introduite dans la version précédente – peuvent être consultées dans les notes de version. Une description détaillée des principales nouveautés se trouve dans un article de blog sur GitHub.

Plus d'articles