BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Git continue d'améliorer la sécurité et l'interface utilisateur dans sa version 2.13

Git continue d'améliorer la sécurité et l'interface utilisateur dans sa version 2.13

Favoris

La dernière version de Git introduit de nombreux changements visant à améliorer son interface utilisateur tout en réparant deux vulnérabilités importantes.

Comme on le sait, on a récemment démontré la vulnérabilité de l'algorithme de hachage SHA-1 utilisé par Git pour identifier des objets de manière unique aux attaques de collision. Alors que l'équipe Git se prépare à passer à un nouvel algorithme de hachage sécurisé, elle a mis en place un mécanisme pour détecter et rejeter tout objet qui semble avoir été créé dans le but de produire une collision. Cela devrait atténuer dans les faits le risque d'attaques de collision.

Toujours sur le front de sécurité, Git 2.13 corrige également une vulnérabilité affectant tous les serveurs Git qui utilisent git shell, qui offre un accès shell restreint via SSH aux commandes Git push/pull, plus des commandes personnalisées installées dans un répertoire git-shell-commands. La vulnérabilité a permis à des attaquants d'exécuter potentiellement des commandes shell sur le serveur distant.

Comme mentionné précédemment, Git 2.13 comprend de nombreuses améliorations à son interface utilisateur. En particulier, une fonctionnalité utile à tous les développeurs qui travaillent pour différents projets est la capacité à gérer de multiples identités grâce à des configurations conditionnelles. En bref, les configurations conditionnelles fournissent un moyen d'inclure un fichier de configuration Git basé sur un ensemble de conditions. Par exemple, vous pourriez avoir les directives suivantes dans votre fichier ~/.gitconfig pour personnaliser votre configuration Git en fonction du chemin d'accès du répertoire où réside le référentiel :

[includeIf "gitdir:~/work/"]
  path = .gitconfig-work
[includeIf "gitdir:~/play/"]
  path = .gitconfig-play

Plus précisément, cela peut être utilisé pour définir des user et des email différents dans .gitconfig-work et .gitconfig-play.

La gestion des chemins dans les commandes Git, c'est-à-dire les pathspecs est une autre caractéristique que presque tous les développeurs utilisent et que Git 2.13 modifie quelque peu. Par exemple, si vous souhaitez exécuter un grep sur tous les fichiers d'un type donné dans votre référentiel, vous pouvez écrire :

git grep my_pattern '*.c'

Maintenant, vous pouvez également utiliser des chemins d'accès négatifs, pour exclure des chemins spécifiques des commandes, et les chemins d'accès qui utilisent des attributs, ce qui permet d'inclure des attributs dans la définition de pathspecs. Par exemple :

git grep text_to_search -- src ':(exclude)*.c'

Les autres améliorations notables comprennent :

  • git branch, git tag et git for-each-ref prennent maintenant en charge l'option --no-contains, qui peut être utilisée pour sélectionner des balises ou des branches qui ne contiennent pas un commit spécifique, par exemple :

    git tag -l --no-contains cf5c725 'v[0-9]*' | sort | tail -n 10
    

    L'option --no-contains peut être utilisée conjointement avec l'option --contains pour, par exemple, trouver des branches créées entre deux balises :

    git branch --contains v2.8.0 --no-contains v2.10.0
    
  • git stash prend en charge l'utilisation de pathspecs pour mettre de côté seulement une partie de l'arbre de travail actuel, permettant ainsi plus de contrôle sur ce qui doit être mis de côté.

  • Un certain nombre de commandes sont maintenant compatibles avec les sous-modules, y compris checkout, grep et ls-files. Cela signifie qu'elles parcoureront de manière récursive vos sous-modules. De plus, git status --short affiche plus d'informations sur les sous-modules.

Vous pouvez lire l'intégralité des notes de version pour avoir une vue plus complète des nouveautés de Git 2.13.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT