GitLab et GitHub sont des systèmes de contrôle de version qui servent à gérer le code source lors du dé­ve­lop­pe­ment logiciel. Grâce à eux, lorsqu’ils tra­vail­lent en équipe, les dé­ve­lop­peurs peuvent éditer en même temps le code source, apporter des mo­di­fi­ca­tions et - dernier point mais non des moindres - garder une vue d’ensemble de toutes les mo­di­fi­ca­tions réalisées. Chaque mo­di­fi­ca­tion peut être suivie avec exac­ti­tude et éven­tuel­le­ment annulée.

Comme leur nom le laisse entendre, GitLab et GitHub sont tous deux basés sur un même logiciel de ver­sion­nage : Git. Celui-ci s’articule autour de ré­fé­ren­tiels (re­po­si­to­ries) dans lesquels les uti­li­sa­teurs peuvent charger du code source et l’éditer si­mul­ta­né­ment dans un na­vi­ga­teur, des éditeurs de code ou un terminal.

Si vous débutez tout juste avec Git, nous vous con­seil­lons pour une prise en main rapide de lire notre tutoriel sur Git, qui vous indiquera les principes élé­men­taires. Si vous désirez en apprendre plus sur GitLab, vous pouvez également jeter un œil à notre tutoriel sur GitLab très complet.

GitLab vs. GitHub : com­pa­ra­tif des dif­fé­rences majeures

Au-delà de leur ca­rac­té­ris­tique commune es­sen­tielle de s’appuyer sur Git, il existe quelques dif­fé­rences notables entre GitLab et GitHub. L’une des prin­ci­pales est l’énorme base d’uti­li­sa­teurs 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.

L’envergure et la position de marché de GitHub ont également des ré­per­cus­sions concrètes. En raison du profond vivier d’uti­li­sa­teurs, la pro­ba­bi­lité est plus grande de trouver des dé­ve­lop­peurs pour un projet, surtout pour les projets open source.

En outre, les ré­fé­ren­tiels peuvent être intégrés plus fa­ci­le­ment par d’autres uti­li­sa­teurs. Le nombre de dé­ve­lop­peurs tra­vail­lant sur la pla­te­forme est plus élevé, et ceux-ci l’en­ri­chis­sent con­ti­nuel­le­ment. En con­sé­quence, GitHub est con­si­dé­rée comme la pla­te­forme la plus stable et per­for­mante.

Licences et ins­tal­la­tion sur un serveur privé

Tant GitLab que GitHub disposent d’une version gratuite et d’une version En­ter­prise pour les en­tre­prises, qui se décline en plusieurs modèles d’abon­ne­ment com­pre­nant dif­fé­rentes fonctions.

En principe, les deux pla­te­formes peuvent être ins­tal­lées sur un serveur privé. S’agissant de GitHub, cette option est cependant limitée à la version En­ter­prise payante, alors que GitLab autorise un hé­ber­ge­ment privé même avec l’édition Community gratuite. Glo­ba­le­ment, la stabilité du serveur est un peu moins bonne dans la variante hébergée de GitLab que chez GitHub, c’est pourquoi une ins­tal­la­tion sur un serveur privé peut être ju­di­cieuse.

Aucun outil d’in­té­gra­tion continue fourni par GitHub

En raison de la vaste diffusion de GitHub, ce service est com­pa­tible avec une multitude de pro­grammes conçus pour faciliter le travail col­la­bo­ra­tif, par exemple Docker, les outils CI/CD ou les ap­pli­ca­tions de gestion de projet.

Mais dans le domaine de l’in­té­gra­tion continue, où c’est né­ces­saire également, GitHub ne fournit pas d’outils d’in­té­gra­tion continue. À cet égard, l’outil de GitLab, qui comprend par défaut une in­té­gra­tion continue gratuite, a une longueur d’avance.

Plus de droits d’uti­li­sa­teur dans la version gratuite de GitLab

Pendant longtemps, un grand avantage de GitLab a été le nombre illimité de ré­fé­ren­tiels gratuits pouvant être créés. GitHub l’a imité et propose aujourd’hui la même chose. Néanmoins, la version gratuite de GitHub comporte toujours plus de res­tric­tions.

Ainsi, les « branches protégées » (dont l’accès est réservé à certains uti­li­sa­teurs) sont dis­po­nibles aussi bien dans GitLab que dans GitHub, mais dans ce dernier elles sont limitées aux ré­fé­ren­tiels publics, alors que dans GitLab la fonction existe aussi pour les ré­fé­ren­tiels privés.

Encore plus gênant : le nombre de dé­ve­lop­peurs par ré­fé­ren­tiel privé dans GitHub est plafonné à trois. Autant dire que ceux qui veulent col­la­bo­rer en équipe élargie seront obligés de souscrire un abon­ne­ment pour utiliser la version En­ter­prise.

Dans l’ensemble, GitHub offre un peu plus de droits d’uti­li­sa­teur. La gestion des droits par rôle est uni­que­ment dis­po­nible dans la version sur abon­ne­ment dans GitHub, alors qu’elle est incluse de série dans GitLab. Enfin, GitLab propose un registre de con­te­neurs où les uti­li­sa­teurs peuvent déposer les images Docker créées avec les outils CI et les gérer comme un composant du ré­fé­ren­tiel GitLab.

Des fonctions iden­tiques, mais une ter­mi­no­lo­gie di­ver­gente

Comme GitHub et GitLab reposent tous les deux sur Git, la migration d’une pla­te­forme à l’autre est possible sans grandes dif­fi­cul­tés. L’im­por­ta­tion des re­po­si­to­ries, wikis, pull requests et issues est facile en règle générale. En revanche, il existe quelques dif­fé­rences de ter­mi­no­lo­gie entre GitHub et GitLab, comme l’illustre le tableau ci-dessous :

GitHub GitLab Sig­ni­fi­ca­tion
Pull request Merge request Demande de fusion de branches
Gist Snippet Petit morceau de code
Re­po­si­tory Project Conteneur ac­cueil­lant le ré­fé­ren­tiel, les pièces jointes et pa­ra­mètres du projet
Or­ga­ni­za­tion Group Niveau auquel s’effectue l’at­tri­bu­tion des projets aux uti­li­sa­teurs

Il faut savoir que le terme « re­po­si­tory » prête quel­que­fois à confusion lors des mi­gra­tions, car beaucoup d’uti­li­sa­teurs l’emploient comme synonyme de « project », bien qu’il englobe les ré­fé­ren­tiels Git et les actifs de projet dans GitHub. GitLab appelle ce conteneur « project » pour indiquer clai­re­ment qu’il contient toutes les données im­por­tantes du projet.

Uti­li­sa­tion et interface uti­li­sa­teur

Avec son interface uti­li­sa­teur graphique bien ordonnée, GitLab semble un peu plus clair au premier abord, ce qui explique pourquoi bon nombre d’uti­li­sa­teurs font état d’une uti­li­sa­tion simple et intuitive. Par exemple, les issues ne sont pas seulement affichées comme liste, elles peuvent aussi être or­ga­ni­sées et gérées dans une vue du tableau de bord.

Un autre avantage majeur de GitLab tient au fait que son interface uti­li­sa­teur peut être re­di­men­sion­née et adaptée librement à la taille de l’écran, alors que celle de GitHub a une taille fixe. Il en découle que pour un affichage sur des terminaux mobiles, GitLab, en tant qu’al­ter­na­tive à GitHub, est souvent le meilleur choix.

L’écriture et l’édition de code sont aussi lé­gè­re­ment plus aisées dans GitLab, sachant que l’outil offre un en­vi­ron­ne­ment de dé­ve­lop­pe­ment intégré (EDI). En com­pa­rai­son, GitHub dispose seulement d’un éditeur de texte ru­di­men­taire.

Toutefois, pour être juste, il convient de remarquer que ces dif­fé­rences n’ont pas grande im­por­tance lorsqu’on utilise les pla­te­formes sur or­di­na­teur et qu’on les intègre à des éditeurs ou EDI de four­nis­seurs tiers, sachant qu’on ne perçoit pas bien l’interface à pro­pre­ment parler. Qui plus est, si vous n’avez encore jamais essayé ces deux outils, vous devrez vous initier aux deux dans la même mesure.

GitLab ou GitHub ? Ré­ca­pi­tu­la­tif des dif­fé­rences majeures

GitHub GitLab
Les issues peuvent être suivies dans plusieurs re­po­si­to­ries Les issues ne peuvent pas être suivies dans plusieurs re­po­si­to­ries
Re­po­si­to­ries privés payants Re­po­si­to­ries privés gratuits
Pas d’hé­ber­ge­ment gratuit sur un serveur privé Hé­ber­ge­ment gratuit possible sur un serveur privé
In­té­gra­tion continue uni­que­ment avec des outils tiers (Travis CI, CircleCI, etc.) In­té­gra­tion continue gratuite incluse
Aucune pla­te­forme de dé­ploie­ment intégrée Dé­ploie­ment logiciel avec Ku­ber­netes
Suivi détaillé des com­men­taires Pas de suivi des com­men­taires
Im­pos­sible d’exporter les issues au format CSV Ex­por­ta­tion possible des issues au format CSV par e-mail
Tableau de bord personnel pour suivre les issues et pull requests Tableau de bord ana­ly­tique pour planifier et sur­veil­ler le projet
Nom de domaine
Votre domaine en un clic
  • 1 cer­ti­fi­cat SSL Wildcard par contrat
  • Fonction incluse Domain Connect pour une con­fi­gu­ra­tion DNS sim­pli­fiée
Aller au menu principal