Git & GitHub, de l'historique aux dépôts distants
Tags: git, github, gitlab, devops
Published: 2024-06-11 20:21:26

Vous voulez gérer les versions de votre code et les conserver en un endroit sûr sur internet ? Vous voulez vous faciliter la collaboration avec votre équipe dans un projet de logiciel ? Voulez-vous montrer au monde entier comment vous êtes devenu un grand codeur ? Et oui 🙂, vous êtes au bon endroit ! Dans cette suite d’articles, nous allons découvrir ensemble c’est quoi “GitHub” et nous allons apprendre à le démystifier! Allons y c'est parti!

Tout d’abord, Git, GitHub, GitLab ? c’est quoi ces gros mots ? D’où viennent-ils ? Ont-ils été créés pour vous impressionner et vous foutre hors du code ? Pas vraiment, au contraire ce sont vos grands compagnons dans votre aventure de développeur. Pour bien le comprendre, faisons un petit tour dans le passé.

Dès les années 97, nos vaillants premiers développeurs utilisaient BitKeeper pour la gestion de versions. BitKeeper est un système de gestion de versions distribué, développé par BitMover Inc, fondée par Larry McVoy. Ce dernier est un ancien ingénieur de Sun Microsystems, il a conçu BitKeeper pour répondre aux besoins complexes de gestion de versions de grands projets logiciels. Notre génie Larry introduit plusieurs nouveautés qui vont faire le grand bonheur des développeurs de l’époque, notamment la gestion des versions distribuées qui permet à chaque développeur de travailler avec une copie complète de l'historique du projet; la fusion avancée, BitKeeper a développé des algorithmes sophistiqués pour la fusion de branches, ce qui facilite le travail parallèle des développeurs; la performance et la scalabilité, c’est chouette non 😀? Même si pour l'instant, ça parait encore une langue non comprise pour vous, lisez quand même, j'aurais aimé avoir toutes ces informations avant de me lancer sur git !

En 2002, la communauté du noyau Linux adopte BitKeeper pour gérer le développement du noyau. Wow, c’est l'âge d’or de BitKeeper, il est utilisé par un des plus grands projets open-source au monde de l’époque, pour les développeurs, tout cela est oufs car BitKeeper offrait une version gratuite pour les développeurs open-source, mais avec des restrictions 🤗. En 2005, des différends concernant ces restrictions ont conduit BitMover à retirer la version gratuite, Linus Torvalds et sa communauté derrière le noyau Linux décident de créer un nouvel outil pour remplacer BitKeeper, conduisant à la création de Git. Voilà enfin le fameux Git, Torvalds a pris sa revanche avec un produit collaboratif incluant la distribution, la performance et la sécurité utilisant le hachage cryptographique SHA-1. BitKeeper va continuer d’exister comme produit commercial, mais devenus vétuste, en 2016, son équipe de développement va décider de le rendre open Source pour permettre à la jeune génération de l’expérimenter. Tout ceci est bien beau, mais où est GitHub dans tout ça 🤔?

En 2008, 3 ambitieux, Tom Preston-Werner, Chris Wanstrath, PJ Hyett et Scott Chacon, inspirés par la success story de Mark Zuckerberg, s’élancent dans la construction d’un nouveau monde, le FaceBook des développeurs 😀! GitHub est né, accueilli comme le saint grâle ! Le succès est au rendez-vous, GitHub devient très vite la principale plateforme de collaboration et est directement adopté par plusieurs projets open source et devient une plateforme centrale dans l'écosystème du développement logiciel. En 2012, il atteint 1 million de dépôts. Le business s’invite là aussi au rendez-vous: Pour sa stratégie Cloud et Open Source, Microsoft, voulant aussi avoir accès aux 1 million d’utilisateurs GitHub, le 4 juin 2018 annonce acquérir GitHub pour une somme colossale de 7,5 milliards de dollars en actions Microsoft. L'annonce a suscité diverses réactions, certains développeurs étaient sceptiques quant à l'impact de cette acquisition sur la neutralité de GitHub, tandis que d'autres y voyaient une opportunité de bénéficier des ressources et de l'infrastructure de Microsoft. C’est parti nos 3 ambitieux s’en sortent milliardaires au prix de leur rêve de Facebook de développeurs, mais bon 7,5 milliards on n’en a pas tous les jours 😣.

Pour rassurer les développeurs pris au piège entre optimisme et scepticisme, Microsoft a assuré que GitHub continuerait à fonctionner de manière indépendante, avec Nat Friedman (ancien CEO de Xamarin) nommé CEO de GitHub après l'acquisition, sous la propriété de Microsoft, GitHub a continué à soutenir et à promouvoir les projets open source. Microsoft lui-même est devenu un contributeur majeur aux projets open source sur GitHub. Microsoft a investi dans l'infrastructure de GitHub et a introduit de nouvelles fonctionnalités, comme GitHub Actions pour l'intégration continue et le déploiement continu (CI/CD). Les fonctionnalités clés de GitHub sont : 

- **Pull Requests** : Facilite les révisions de code et les contributions externes.
- **Issues** : Outil de suivi des bogues et des fonctionnalités.
- **Actions GitHub** : Intégration continue et déploiement continu (CI/CD).
- **Pages GitHub** : Hébergement de sites web statiques directement depuis un dépôt GitHub.

Et GitLab alors ? 🤔 GitLab a été fondé en 2011 par Dmitriy Zaporozhets et Valery Sizov. Initialement un projet open-source, GitLab offre des fonctionnalités similaires à GitHub mais se distingue par ses options de déploiement auto-hébergées. Perçu comme une alternative à GitHub, de nos jours, GitLab est une plateforme complète de DevOps couvrant tout le cycle de vie du développement logiciel, de la gestion du code à la livraison et à la surveillance des applications. Ses principales fonctionnalités sont : 
- Pipeline CI/CD : Intégration native pour tester et déployer automatiquement le code.
- Auto-hébergement : Les entreprises peuvent installer et gérer GitLab sur leurs propres serveurs.
- Cycle de vie complet : Supporte la gestion de projet, le contrôle des versions, l'intégration continue, le déploiement et la surveillance.
- Sécurité : Fonctionnalités avancées pour la gestion des permissions et la sécurité du code.

Nous avons découvert nos trois termes Git, GitHub et GitLab qui étaient jadis des concepts impénétrables. Nous allons expérimenter dans la deuxième partie de cette série d’articles consacrés à Gît la beauté de tout cela dans la pratique, prenez bien soins de vous, et retrouvons-nous dans la suite 👏