lancement d'un système de gestion décentralisé des textes sources . Git est l'un des systèmes de gestion de versions les plus populaires, fiables et performants, offrant des outils flexibles de développement non linéaire basés sur le branchement et la fusion. Pour garantir l'intégrité de l'historique et la résistance aux modifications rétroactives, un hachage implicite de l'ensemble de l'historique précédent est utilisé dans chaque commit, et il est également possible de vérifer numériquement par des signatures des développeurs pour des tags et commits spécifiques.
Comparé à la version précédente, la nouvelle version intègre 317 modifications, préparées avec la participation de 58 développeurs, dont 13 ont participé au développement pour la première fois. Principales :
- Une nouvelle configuration init.defaultBranch a été ajoutée, permettant de choisir un nom arbitraire pour la branche principale, qui sera appliqué par défaut. Cette configuration a été ajoutée pour les projets dont les développeurs sont troublés par les souvenirs d'esclavage, et où le mot « master » est perçu comme une référence offensante ou évoque des tourments psychologiques et un sentiment de culpabilité inexpiable. , et Il a été décidé d'utiliser par défaut le mot « main » au lieu de « master » pour les branches principales. Dans Git, comme auparavant, lors de l'exécution de la commande « git init », la branche « master » continue d'être créée par défaut, mais ce nom peut maintenant être changé. Par exemple, pour changer le nom de la branche initiale en « main », vous pouvez utiliser la commande:
git config —global init.defaultBranch main
- Des optimisations de performance ont été ajoutées, basées sur l'apparition du format de fichier commit-graph, utilisé pour optimiser l'accès aux informations sur les commits, et le soutien , d'une structure probabiliste, permettant une fausse identification d'un élément manquant, mais excluant le passage d'un élément existant. La structure spécifiée permet d'accélérer considérablement la recherche dans l'historique des modifications lors de l'utilisation des commandes « git log — » ou « git blame ».
- Dans la commande « git status », des informations sur l'avancement de l'opération de clonage partiel (sparse-checkout) sont désormais fournies.
- Une nouvelle configuration « diff.relative » a été proposée pour les commandes de la famille « diff ».
- Lors de la vérification via « git fsck », le tri de l'arborescence des objets est maintenant évalué et les éléments non triés sont identifiés.
- L'interface pour l'édition des informations confidentielles dans la sortie de trace a été simplifiée.
- Le script d'auto-complétion a été mis à jour pour ajouter la prise en charge des options de la commande « git switch ».
- Dans « git diff », la prise en charge du passage d'arguments dans différentes notations a été ajoutée (« git diff A..B C », « git diff A..B C…D », etc.).
- La commande « git fast-export —anonymize » a été mise à jour pour permettre la définition d'une correspondance personnalisée des éléments pour affiner la sortie, afin de la rendre plus pratique pour le débogage.
- Dans « git gui », l'ouverture des arbres de travail depuis la boîte de dialogue initiale est désormais autorisée.
- Le protocole «fetch/clone» a été mis en œuvre pour permettre au serveur d'informer le client de la nécessité de télécharger des fichiers pack préparés en plus des données empaquetées de l'objet transmises.
- Le travail se poursuit pour passer à l'algorithme de hachage SHA-256 au lieu de SHA-1.
Source : opennet.ru
