Qu’est-ce que Git ?

Git est devenu la norme mondiale pour le contrôle de version. Alors, c’est quoi exactement ?

Git est un système de contrôle de version distribué, ce qui signifie qu’un clone local du projet est un dépôt de contrôle de version complet. Ces référentiels locaux entièrement opérationnels facilitent le travail en mode hors connexion ou à distance. Les développeurs valident leur travail localement, puis synchronisent leur copie du dépôt avec la copie sur le serveur. Ce paradigme diffère de la gestion de version centralisée où les clients doivent synchroniser le code avec un serveur avant de créer de nouvelles versions du 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 facilite l’obtention d’aide si nécessaire. Presque chaque environnement de développement prend en charge Git et les outils de 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.

Linear graph of development in 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 d'endommager des fichiers sans que Git ne le détecte.

Branches

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

Commits on a branch

Fichiers et validations

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’une validation ou de l’historique de développement. Le développeur doit mettre en lots les fichiers modifiés à inclure dans la validation. La zone de mise en lots contient toutes les modifications à inclure dans la validation suivante. Une fois que le développeur est satisfait des fichiers intermédiaires, les fichiers sont empaquetés comme une validation avec un message décrivant ce qui a changé. Cette validation fait partie de l’historique de développement.

file_status_lifecycle-2

La mise en lots 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.

Versions 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ées dans la branche principale à l’achèvement. 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.

Support 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 d’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. Ou, ils peuvent également choisir une solution telle que GitHub ou Azure DevOps qui prend en charge toutes ces tâches à un seul endroit.

Requêtes 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 demandes de tirage sont inestimables pour garantir la qualité du code et accroître les connaissances au sein de votre équipe. Les plateformes telles que GitHub et Azure DevOps offrent une expérience de demande de tirage complète où les développeurs peuvent parcourir les modifications de fichier, laisser des commentaires, inspecter les validations, afficher les builds et voter pour approuver le code.

Stratégies de branche

Les équipes peuvent 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 demandes de tirage répondent aux exigences avant la fin. Les stratégies de branche protègent les branches importantes en empêchant les envois directs, en exigeant des réviseurs et en garantissant des builds nets.

Étapes suivantes

Installer et configurer Git