Dans le monde du développement informatique, il est courant d’entendre parler de Git ou de systèmes de gestion de version.
Nous allons dans cet article essayer de vous les faire connaître ou comprendre de la façon la plus simple possible, tout du moins.


Qu'est-ce que le contrôle de version ?
Si vous avez déjà travaillé sur un projet informatique, vous avez certainement déjà rencontré un de ces problèmes :
- « Qui a modifié le fichier X, il marchait bien avant et maintenant il provoque des bugs ! » ;
- « Peux-tu m’aider en travaillant sur le fichier X pendant que je travaille sur le fichier Y ? Attention à ne pas toucher au fichier Y car si on travaille dessus en même temps je risque d’écraser tes modifications ! » ;
- « Qui a ajouté cette ligne de code dans ce fichier ? Elle ne sert à rien ! » ;
- « À quoi servent ces nouveaux fichiers et qui les a ajoutés au code du projet ? » ;
- « Quelles modifications avons-nous faites pour résoudre le bug de la page qui se ferme toute seule ? »
Ces genres de problèmes sont communs sans l’utilisation d’un logiciel de gestion de versions.
Ce type de logiciel est devenu indispensable lorsqu’on travaille à plusieurs sur un même projet et donc sur le même code source. Même si vous travaillez seuls, vous aurez intérêt à commencer à en utiliser un rapidement car il vous offrira de nombreux avantages.


Les développeurs travaillant en équipe écrivent continuellement du nouveau code source et modifient le code existant.
Le code d’un projet, d’une app ou d’un composant logiciel est généralement organisé en une structure de dossiers ou « arborescence de fichiers ». Un développeur de l’équipe pouvant travailler sur une nouvelle fonctionnalité, alors qu’un autre corrige un bug sans rapport en changeant le code. Chaque développeur peut apporter ses changements dans plusieurs parties de l’arborescence de fichiers.
Le contrôle de version aide les équipes à résoudre ce genre de problèmes, en suivant chaque changement individuel de chaque contributeur et en aidant à prévenir les conflits entre les tâches co-existantes.
En résumé...
Un gestionnaire de version est un système qui enregistre l’évolution d’un fichier ou d’un ensemble de fichiers au cours du temps de manière à ce qu’on puisse rappeler une version antérieure d’un fichier à tout moment.
C’est l’aide précieuse pour une équipe de développement à gérer les changements apportés au code source au fil du temps. Il garde une trace de chaque changement apporté au code dans un type spécial de base de données. Si une erreur est commise, les développeurs peuvent revenir en arrière et comparer les versions antérieures du code, ce qui leur permet de corriger l’erreur tout en minimisant les perturbations pour tous les membres de l’équipe.
Initialement, les systèmes de gestion de version étaient en version locale ou encore centralisée. Cependant ces systèmes ont de nombreux défauts. Le plus important étant le point unique de panne que le serveur centralisé ou local représente: avec un projet sauvegardé à un endroit unique, on prend le risque de tout perdre en cas de problème.
Git, système de gestion de version distribué.
Git est à la base un projet open source avancé, qui est activement maintenu. Il a été développé en 2005 à l’origine par Linus Torvalds, le créateur bien connu du noyau du système d’exploitation Linux. Il est devenu de loin, le système de contrôle de version le plus largement utilisé aujourd’hui.
Dans un système de contrôle de version décentralisé (DVCS en anglais) comme Git, chaque copie de travail du code est également un dépôt qui contient l’historique complet de tous les changements.
Donc, les clients n’extraient plus seulement la dernière version d’un fichier, mais ils dupliquent complètement le dépôt. Ainsi, si le serveur disparaît, n’importe quel dépôt d’un des clients peut être copié sur le serveur pour le restaurer. Chaque extraction devient dès lors une sauvegarde complète de toutes les données.
Sur le même sujet
Codage et Internet: comment ça fonctionne ?
l’Allemagne continue à favoriser l’open-source
GitLab et GitHub
GitLab et GitHub quant à eux, sont tous deux des plates-formes web utilisées pour stocker votre code dans des référentiels git.
Au-delà de leur caractéristique commune essentielle de s’appuyer sur Git, il existe quelques différences notables entre GitLab et GitHub. L’une des principales est l’énorme base d’utilisateurs de GitHub, qui occupe une position de quasi-monopole puisque c’est le système de contrôle de version le plus connu du marché. D’ailleurs, ce n’est pas sans raison que Microsoft l’a racheté en 2018.
Écrit en Ruby and Go, GitLab est une plateforme de développement collaborative open source. Elle offre des fonctionnalités similaires, et compte plus de 100’000 organisations telles que Sony, IBM, ou encore la NASA.
Leur histoire...
GitLab
GitLab a été fondé en 2011 par Dmitriy Zaporozhets et Valery Sizov dans la maison de Dmitry en Ukraine. Dmitriy déclare qu'il avait besoin d'un outil de collaboration efficace. Il a donc décidé d'en créer un. GitLab possède à peu près les mêmes fonctionnalités que Github. Cependant, GitLab a été initialement conçu avec un outil CI/CD intégré, (CI/CD, ou Intégration Continue/Livraison et Déploiement Continu, met l’accent sur la mise en production rapide de petits changements incrémentiels et l’utilisation de l’automatisation tout au long du processus du développement.) ce qui en fait l'un des frameworks CI/CD les plus populaires aujourd'hui..
GitHub
GitHub existe depuis 2008, créé par Chris Wanstrath , PJ Hyett , Tom Preston-Werner et Scott Chacon à San Francisco. En 2018, Microsoft a acquis GitHub pour 7,5 milliards de dollars. Provoquant une diminution de son nombre d'utilisateurs actifs. Alors que GitLab est devenu très populaire et est devenu le puissant concurrent de GitHub que nous connaissons aujourd'hui. Quoi qu'il en soit, GitHub reste la plate-forme de dépôt git la plus populaire au monde. Il compte plus de 50 millions d'utilisateurs et 2,9 millions d'entreprises et d'organisations, ainsi que 100 millions de référentiels.
L’outil CI/CD intégré, ce fut le cas par exemple avec l’outils CI/CD intégré de GitLab qui étaient une des principales différences, mais GitHub lança en 2019 GitHub Actions, dont une version gratuite est disponible, pour se rapprocher encore plus de son concurrent.
Néanmoins, quelques différences subsistent. L’une des principales étant l’énorme base d’utilisateurs de GitHub, qui occupe une position de quasi-monopole puisque c’est le système de contrôle de version le plus connu du marché. Le nombre de développeurs travaillant sur la plateforme est plus élevé, et ceux-ci l’enrichissent continuellement. En conséquence, GitHub est considéré plus stable et performant.
En principe, les deux plateformes peuvent être installées sur un serveur privé, mais seul GitLab l’autorise, même avec la version gratuite.
Un avantage majeur de GitLab tient au fait que son interface utilisateur graphique bien ordonnée, peut être redimensionnée et adaptée librement à la taille de l’écran, alors que celle de GitHub a une taille fixe. GitLab apparaît plus clair au premier abord, ce qui explique pourquoi bon nombre d’utilisateurs font état d’une utilisation simple et intuitive.
L’écriture et l’édition de code sont aussi légèrement plus aisées dans GitLab, sachant que l’outil offre un environnement de développement intégré (EDI). En comparaison, GitHub dispose seulement d’un éditeur de texte rudimentaire.


Bon, mais lequel choisir ?
Ces différences ne sont pas si évidentes, et, souvent, font partie du moteur de l’application. Néanmoins, nous allons essayer de vous donner des points de vue de préférer l’un ou l’autre Git selon vos besoins :
Si vous recherchez quelque chose de flexible, qui peut gérer l’intégralité du cycle de vie de votre projet, et également à moindre coût… GitLab sera l’option parfaite.
Le caractère unique de GitLab provient de ses fonctionnalités étonnantes – suivi des problèmes, CI/CD intégré, déploiement, surveillance – qui vous permettent de passer du développement au cloud sans avoir à utiliser d’autres outils tiers. Vous avez un tout-en-un en un seul endroit. Par conséquent, GitLab est idéal pour un usage personnel.
Cependant, gardez à l’esprit qu’en raison du nombre excessif de fonctionnalités, l’interface peut être un peu écrasante. Vous devrez donc lui donner un peu de temps si vous ne faites que commencer pour avoir une vue d’ensemble.
D’un autre côté, si vous préférez une alternative plus simple (à laquelle nous le rappelons, font confiance plus de 50 millions de développeurs dans le monde) GitHub sera le choix qu’il vous faut.
GitHub est grandement préféré par les grandes équipes qui dépendent d’une communication claire comme du cristal. Car GitHub fournit des outils de collaboration afin de rendre la communication de votre équipe efficace afin que vous puissiez développer plus rapidement et produire un code de qualité.
GitHub est également une excellente plateforme pour les débutants, surtout si vous recherchez une plateforme intuitive pour héberger vos projets.
GitKraken – libérez vous du terminal
Nous ne pouvions terminer cet article sans vous parler de GitKraken, client graphique et multi-plateforme pour le logiciel de « versionalisation » Git.
Git est un outil vraiment très pratique, mais son client en ligne de commande n’est pas forcément facile d’accès pour tout le monde. Sorti en 2016, ce client n’a eu de cesse d’évoluer et propose gratuitement tout le nécessaire pour les développeurs.
Simple à installer et configurer, le logiciel vous reconnaît tous les dépôts Git que vous avez sur votre poste de travail. Mais sait aussi parfaitement s’intégrer avec des services tiers comme GitLab, GitHub, ou encore Trello.
Ce n’est pas pour rien qu’il est récompensé depuis cinq années consécutives parmi les meilleurs outils de développement. GitKraken est utilisé par les équipes de développeurs de Google, d’Apple, Microsoft, Adobe, Cisco, Bose, Amazon, Tesla, Netflix et j’en passe…

