Git, le système distribué de gestion de versions, vient de passer à la version 2.23
et propose deux commandes expérimentales pour réduire l’usage de git checkout

Git, le système distribué de gestion de versions vient de passer à la version 2.23. Comparativement à la version précédente, nous avons droit à plus de 500 changements dans cette nouvelle version. Mais parmi les améliorations nouvellement introduites dans cette nouvelle version, celles qui retiennent le plus l’attention sont git switch et git restore. git switch et git restore sont deux commandes expérimentales spécifiques qui peuvent être utilisées pour remplacer dans une certaine mesure la commande git checkout.

git checkout est une commande qui permet par exemple de changer de branches ou de créer de nouvelles branches dans un dépôt. Si vous souhaitez modifier des fichiers individuels ou même réinitialiser les noms de fichiers dans le dépôt qui se trouve sur votre disque dur afin qu’ils soient semblables aux fichiers de votre index, vous pouvez également utiliser git checkout. En plus de ces possibilités, plusieurs autres actions peuvent être réalisées avec la commande git checkout.

Nom : Git.png
Affichages : 188309
Taille : 64,2 Ko

Pour donner donc aux développeurs, une claire visibilité des actions qu’ils souhaitent réaliser, git switch et git restore ont été ajoutés afin de séparer clairement les fonctionnalités de git checkout et les réduire à deux catégories distinctes à savoir, les opérations qui modifient les branches et les opérations qui modifient les fichiers. Git switch sera donc chargé de gérer les changements avec les branches et git restore assurera la modification des fichiers.

Un usage de git switch en lieu et place de git checkout donne ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$ git switch my-feature
 
Switched to branch 'my-feature'
 
Your branch is up to date with 'origin/my-feature'
Avec git restore, il est beaucoup plus facile de déterminer exactement quels fichiers vont changer, en quoi ils vont changer et où ils vont changer. En effet, au lieu d’utiliser la commande compliquée git checkout, git restore fournit 2 options pour spécifier l’emplacement où les changements restaurés iront. Ainsi, si vous passez le paramètre --worktree (ou ne précisez rien du tout), les changements seront effectués sur le dépôt qui se trouve sur votre disque dur. Si par contre, vous passez le paramètre --staged, les changements iront dans l’index. Enfin, si vous passez les deux paramètres, les changements iront dans les deux emplacements respectifs.

Lorsque vous appliquez des modifications dans vos fichiers, vous pouvez également souhaiter savoir la provenance de ces changements. Pour cela, il suffit d’ajouter l’option --source. Si l’option --source n’est pas spécifiée, les contenus sont restaurés à partir de l’index, sinon ils sont restaurés à partir d’une arborescence spécifique. Enfin, une différence à faire entre git checkout et git restore est que git restore est défini par défaut avec --no-overlay et supprimera les fichiers suivis non présents dans l’arborescence source.

Au-delà de ces améliorations, cette nouvelle version de Git peut maintenant utiliser les références d’une autre solution dans le cadre de la vérification d’objets connectés qui peut survenir lorsque vous clonez un dépôt et spécifiez un autre pendant le clonage ou encore dans le cadre de la récupération ou de la publication de nouvelles révisions de code. En outre, il est maintenant possible d’utiliser la nouvelle option --quit avec git --merge, qui agit comme l’option --abort en ce qu’il déclare que la fusion que l’on souhaite interrompre a été annulée sans succès, mais contrairement à l’option --abort, elle conserve intact l’état de votre dépôt local et de votre index. Et si vous disposez d’un dépôt volumineux qui est beaucoup sollicité, les graphes de validation qui ont été mis à jour dans Git 2.23 peuvent aider à accélérer le parcours de l’historique.

Source : GitHub

Et vous ?

Utilisez-vous Git ? Que pensez-vous des nouveautés apportées dans cette dernière version ?

Selon vous, quelles sont les améliorations qui ne se trouvent pas dans cette version 2.23 et qui devraient y être ajoutées ?

Voir aussi

La version 2.17 de Git, l’outil open source de gestion de versions, est disponible et intègre de nouvelles fonctionnalités dont une d’accélération
Publication de la v2.17.1 de Git qui corrige une vulnérabilité sévère permettant l’exécution d’un code arbitraire lors du clone d’un dépôt malicieux
Fork, le client Git pour macOS et Windows, passe en version 1.0.79 sur la plateforme d’Apple et apporte de nombreuses nouveautés
GitLab, le gestionnaire de référentiels Git, a été développé en Ruby on Rails, son PDG nous donne ici les raisons de ce choix
La version 1.7.0 de Gitea, le service Git auto-hébergé est disponible, voici un tour d’horizon des nouveautés