Retour au glossaire

Git GitLab GitHub

Git, GitHub et GitLab : les incontournables du développement collaboratif

Pour nos équipes (comme pour une grande partie de l’univers du développement), l’efficacité, la collaboration, la gestion (et surtout la traçabilité) du code source font partie des fondamentaux d’un projet IT. Parmi les outils les plus populaires et performants, Git, GitHub et GitLab sont deux des piliers incontournables pour le travail en équipe. Ils permettent, notamment, de gérer les versions du code, d’améliorer la collaboration, et (donc !) d’assurer la qualité des livrables.

Git, kezako?

Git est un système de gestion de versions distribué (Distributed Version Control System – DVCS), créé par Linus Torvalds en 2005. Il a révolutionné le quotidien des développeurs (qui se souvient de ses premiers pas avec SVN ?) pour la réalisation des applications en mode individuel ou collaboratif. Git permet de suivre l’évolution des fichiers dans le temps, de collaborer (en assurant la traçabilité) sur le même code source, et de gérer différentes versions d’un projet.

Les principales fonctionnalités de Git incluent :

      • Gestion des branches : chaque développeur ou « partie de l’équipe » peut travailler sur une branche spécifique du projet, sans interférer avec les autres. Cela facilite l’intégration de nouvelles fonctionnalités ou la gestion des correctifs en mode recette ou MCO ;
      • Historique des modifications : toutes les modifications sont enregistrées, ce qui permet de revenir à une version antérieure si nécessaire ;
      • Collaboration efficace : chaque développeur peut disposer d’une copie complète du dépôt de code, ce qui permet de travailler hors ligne.

Git est très largement utilisé par de nombreuses communautés ou organisations grâce à sa performance, sa flexibilité et sa compatibilité avec la majorité des solutions d’intégration continue.

Git ou GitLab ou GitHub ?

GitLab et  sont deux solutions proposant la gestion du cycle de vie d’un projet. Ces plateformes DevOps intègrent Git pour la gestion des versions ainsi que, notamment, des outils pour le suivi des tâches, la revue de code et l’intégration continue (CI/CD). Elles assurent :

      • Le suivi des tâches et gestion de projet : en intègrant un système de gestion des tickets qui permet de suivre, en les liant à la ligne de code les concernant, les tickets, User Stories ou les spécifications ;
      • La revue de code : les merge requests (MR) permettent aux développeurs de soumettre leurs modifications pour examen avant de les intégrer au projet principal.
      • Le CI/CD : elles disposent d’un système d’intégration et de déploiement continus. Cela permet d’automatiser les tests, la validation et le déploiement du code ;
      • La sécurité : elle est assurée par des fonctionnalités comme la gestion des permissions et des outils d’analyse du code ;
      • Hébergement flexible : GitLab peut être utilisé en mode SaaS via GitLab.com ou installé sur des serveurs dédiés, GitHub est d’abord pensé en version SaaS (l’intégration « en version entreprise » étant très coûteuse).

(Git + GitLab) ou (Git ou GitLab)

Il s’agit donc de 2 outils complémentaires. Git est un outil pour gérer le code source et les versions, tandis que GitLab (ou GitHub) offrent un environnement complet pour gérer tout le cycle de vie du développement.

Nos équipes utilisent cette complémentarité au quotidien. Nous pouvons, par exemple entendre, au cœur de nos Open Space (ou lors des pauses café) :

      • « Je viens de créer une nouvelle branche Git pour prendre en compte l’évolution de la fonctionnalité « gestion des avenants »
      • « J’ai terminé, je pousse ma branche sur GitHub, oui, j’ai créé une merge request »
      • « Fred a prévu une revue de code du projet Nemo via GitLab »
      • « Ma branche est fusionnée, il est possible de déployer »

Les bénéfices pour les équipes de développement

L’utilisation de Git et GitLab (ou GitHub) apporte de nombreux avantages pour les équipes de développement, notamment :

      • Une collaboration simplifiée : avec des outils comme les merge requests et les pipelines CI/CD, les équipes peuvent travailler efficacement, même à distance.
      • Une gestion de projet centralisée : GitLab (ou GitHub) regroupe tout ce dont une équipe a besoin dans un seul outil, évitant ainsi la fragmentation des outils.
      • Une productivité accrue : les automatisations, telles que les tests ou les déploiements automatiques, réduisent les tâches répétitives et les risques d’erreurs humaines.
      • Un meilleur contrôle de la qualité : grâce aux fonctionnalités de revue de code et d’analyse de sécurité.

Cas d’usage au sein de notre Centre De Services

Nos équipes de développement #web2 comme #web3 utilisent, depuis de nombreuses années, Git et GitLab (ou GitHub) au quotidien. Ainsi :

      • Chaque intervenant de l’équipe travaille sur une branche dédiée pour développer ou corriger les tâches qui lui sont affectées et / ou qu’il a pris « à sa charge » ;
      • Les merge requests garantissent une mise en commun rigoureuse du code ;
      • Des tests automatisés peuvent être mis en place afin de repérer, avant le déploiement en production ;
      • Tout cela est compatible avec les process (les fameux « pipelines ») CI/CD peuvent être déployés, permettant des mises à jour applicatives rapides, fiables et régulières.

Conclusion

Git et GitLab (ou GitHub) ne sont pas seulement des outils « de devs », ils sont le lien digitalisé entre les « codeurs », le management de projet (fonctionnel, technique, métier), ils permettent la mise en place de méthodes de travail au sein du projet, l’optimisation de la collaboration et l’amélioration de la qualité délivrée par l’Equipe Projet dans son ensemble.

git github gitlab