Partager via


Qu’est-ce que Git ?

Git est devenu la norme mondiale pour le contrôle de version. Alors, qu’est-ce que c’est exactement ?

Git est un système de contrôle de version distribué, ce qui signifie qu’un clone local du projet est un référentiel complet de contrôle de version. Ces référentiels locaux entièrement fonctionnels facilitent le travail hors connexion ou à distance. Les développeurs valident leur travail localement, puis synchronisent leur copie du référentiel avec la copie sur le serveur. Ce paradigme diffère du contrôle de version centralisé où les clients doivent synchroniser du code avec un serveur avant de créer de nouvelles versions de code.

La flexibilité et la popularité de Git constituent un excellent choix pour n’importe quelle équipe. De nombreux développeurs et diplômés du collège savent déjà comment utiliser Git. La communauté des utilisateurs de Git a créé des ressources pour former les développeurs et la popularité de Git, ce qui facilite l’obtention de l’aide si nécessaire. Presque chaque environnement de développement prend en charge Git et les outils en ligne de commande Git implémentés sur chaque système d’exploitation majeur.

Notions de base Git

Chaque fois que le travail est enregistré, Git crée une validation. Une validation est un instantané de tous les fichiers à un moment donné. Si un fichier n’a pas changé d’une validation à l’autre, Git utilise le fichier précédemment stocké. Cette conception diffère des autres systèmes qui stockent une version initiale d’un fichier et conservent un enregistrement de deltas au fil du temps.

Graphique linéaire du développement dans Git

Les validations créent des liens vers d’autres validations, formant un graphique de l’historique de développement. Il est possible de rétablir le code à une validation précédente, d’inspecter la façon dont les fichiers ont changé d’une validation à l’autre et de passer en revue les informations telles que l’emplacement et le moment où des modifications ont été apportées. Les validations sont identifiées dans Git par un hachage de chiffrement unique du contenu de la validation. Étant donné que tout est haché, il est impossible d’apporter des modifications, de perdre des informations ou de endommager des fichiers sans la détecter par Git.

Branches

Chaque développeur enregistre les modifications apportées à son propre référentiel de code local. Par conséquent, il peut y avoir de nombreuses modifications différentes basées sur le même commit. Git fournit des outils pour isoler les modifications et les fusionner ultérieurement. Les branches, qui sont des pointeurs légers pour le travail en cours, gèrent cette séparation. Une fois le travail créé dans une branche terminé, il peut être fusionné dans la branche principale (ou jonction) de l’équipe.

Validations sur une branche

Fichiers et commits

Les fichiers dans Git se trouvent dans l’un des trois états suivants : modifiés, intermédiaires ou validés. Lorsqu’un fichier est modifié pour la première fois, les modifications existent uniquement dans le répertoire de travail. Ils ne font pas encore partie d’un commit ou de l’historique de développement. Le développeur doit mettre en scène les fichiers modifiés à inclure dans la validation. La zone de staging contient toutes les modifications à inclure dans le prochain commit. Une fois que le développeur est satisfait des fichiers intermédiaires, les fichiers sont empaquetés en tant que validation avec un message décrivant ce qui a changé. Cette contribution fait partie de l'historique du développement.

cycle de vie du statut de fichier - file_status_lifecycle-2

La préproduction permet aux développeurs de choisir les modifications de fichier à enregistrer dans une validation afin de décomposer les modifications importantes dans une série de validations plus petites. En réduisant l’étendue des validations, il est plus facile de passer en revue l’historique des validations pour rechercher des modifications de fichier spécifiques.

Avantages de Git

Les avantages de Git sont nombreux.

Développement simultané

Tout le monde a sa propre copie locale du code et peut travailler simultanément sur ses propres branches. Git fonctionne hors connexion, car presque toutes les opérations sont locales.

Livraisons plus rapides

Les branches permettent un développement flexible et simultané. La branche principale contient du code stable et de haute qualité à partir duquel vous publiez. Les branches de fonctionnalité contiennent des travaux en cours, qui sont fusionnés dans la branche principale une fois terminés. En séparant la branche de mise en production du développement en cours, il est plus facile de gérer le code stable et d’expédier les mises à jour plus rapidement.

Intégration intégrée

En raison de sa popularité, Git s’intègre à la plupart des outils et produits. Chaque IDE principal prend en charge Git intégré et de nombreux outils prennent en charge l’intégration continue, le déploiement continu, les tests automatisés, le suivi des éléments de travail, les métriques et l’intégration des fonctionnalités de création de rapports avec Git. Cette intégration simplifie le flux de travail quotidien.

Soutien solide de la communauté

Git est open source et est devenu la norme de facto pour le contrôle de version. Il n’y a pas de pénurie d’outils et de ressources disponibles pour que les équipes tirent parti. Le volume de prise en charge de la communauté pour Git par rapport à d’autres systèmes de contrôle de version facilite l’obtention de l’aide si nécessaire.

Git fonctionne avec n’importe quelle équipe

L’utilisation de Git avec un outil de gestion du code source augmente la productivité d’une équipe en encourageant la collaboration, en appliquant des stratégies, en automatisant les processus et en améliorant la visibilité et la traçabilité du travail. L’équipe peut s’installer sur des outils individuels pour le contrôle de version, le suivi des éléments de travail et l’intégration et le déploiement continus. Ils peuvent également choisir une solution telle que GitHub ou Azure DevOps qui prend en charge toutes ces tâches à un seul endroit.

Demandes de tirage

Utilisez des demandes de tirage pour discuter des modifications de code avec l’équipe avant de les fusionner dans la branche principale. Les discussions dans les pull requests sont inestimables pour garantir la qualité du code et renforcer les connaissances au sein de votre équipe. Les plateformes telles que GitHub et Azure DevOps offrent une expérience de pull request complète où les développeurs peuvent parcourir les modifications de fichier, laisser des commentaires, inspecter les validations, afficher les compilations et voter pour approuver le code.

Stratégies de branche

Teams peut configurer GitHub et Azure DevOps pour appliquer des flux de travail et des processus cohérents au sein de l’équipe. Ils peuvent configurer des stratégies de branche pour s’assurer que les pull requests répondent aux exigences avant d’être finalisées. Les stratégies de gestion de branche protègent les branches critiques en empêchant les poussées directes, en exigeant des réviseurs, et en garantissant des builds réussis.

Étapes suivantes

Installer et configurer Git