Quoi de neuf côté Git ?
Sommaire
Git publie une version environ tous les trimestres. Cette page recense, sans prétendre à l’exhaustivité, les évolutions récentes les plus utiles pour les pratiques décrites dans cette formation. La référence complète reste constituée par les notes de version de chaque publication, disponibles sur le site officiel de Git.
Des commandes plus claires
- Git 2.23 :
git switchetgit restore. Elles remplacent les principaux usages degit checkout(changer de branche, créer une branche, restaurer des fichiers).git checkoutreste valide. - Git 2.46 : sous-commandes de
git config.git config list,get,setetunsetoffrent une syntaxe plus lisible que les options historiques. - Git 2.52 :
git last-modified. Cette commande affiche, pour chaque fichier, le dernier commit qui l’a modifié. Une nouvelle commandegit repopermet par ailleurs de lire des caractéristiques du dépôt.
Réécrire l’historique plus simplement
La commande expérimentale git history propose des réécritures guidées de l’historique récent, sans passer par un rebase interactif :
- Git 2.54 : introduction de la commande, avec
splitpour scinder un commit en deux ; - Git 2.55 : sous-commande
fixup; - Git 2.56 : sous-commande
drop, qui retire un commit et rejoue ses descendants sur son parent.
Comme toute réécriture d’historique, ces commandes ne doivent servir que sur des commits non partagés. Leur caractère expérimental signifie que leur syntaxe peut encore évoluer.
Confort et sécurité au quotidien
- Hooks définis dans la configuration (Git 2.54), pouvant être partagés de façon centralisée, puis exécutés en parallèle (Git 2.55).
- Démon
fsmonitorpour Linux (Git 2.55), qui accélère les commandes interrogeant l’état du répertoire de travail. git checkout -mcrée désormais un stash pour sauvegarder les modifications locales, ce qui permet de résoudre plusieurs fois les conflits (Git 2.55).- Séquences de contrôle de terminal issues des messages d’un dépôt distant largement neutralisées par défaut, à l’exception des couleurs (Git 2.55).
- Git 2.56 :
git statussuggère la bonne commandegit pullquand la branche est en retard ou a divergé ;git add --resolvedindexe les fichiers dont les conflits sont résolus ;git branch --delete-mergedsupprime les branches locales déjà fusionnées ;git bisect --reset-when-foundreferme automatiquement la recherche.
Git 3.0 : ce qui est annoncé
Git 3.0 sera la prochaine version « majeure », qui autorise des changements incompatibles. Selon la documentation du projet sur les ruptures prévues (breaking changes) :
- les nouveaux dépôts utiliseront
maincomme nom de branche initiale par défaut ; - le hachage par défaut des nouveaux dépôts passera de SHA-1 à SHA-256 ;
- le support du langage Rust, optionnel à ce jour, deviendra obligatoire pour compiler Git.
Aucune date de publication n’est annoncée à ce jour. En attendant, il est possible de s’y préparer en configurant init.defaultBranch main.