« Tu clone le repository, tu fais ta feature, tu commit, tu push et tu me fais une pull request ! »
C’est bon, c’est fait ?
Si tu n’as pas la moindre idée de ce que tout ça peut bien vouloir dire, c’est que tu ne doit pas être familier avec GitHub. Ne t’en fais pas, je t’explique tout ici.
Github c’est quoi ?
Github, c’est une plateforme open source de gestion de versions et de collaboration destinée aux développeurs. Cette plateforme a été créé en 2008.
C’est un outil gratuit (avec certaines fonctionnalités payantes) qui te permets d’héberger tes projets open source ou non (private).
Aujourd’hui GitHub est la bibliothèque des projets open source numéro un dans le mondeavec des millions de « repository » hébergés.
GitHub a été racheté en 2018 par Microsoft. On y retrouve d’ailleurs leur projet Visual Studio Code. L’un des IDE les plus appréciés par les développeurs.
Mais concrètement, GitHub c’est quoi?
GitHub est basé sur Git.
Oula, on s’y perd dans tout ça.
Git est le moteur, c’est le contrôleur de version qui a été créé par Linus Torvalds (le créateur de Linux) en 2005. Et Github est simplement une surcouche, une plateforme qui repose sur Git en apportant des fonctionnalités supplémentaires et qui a surtout rendu plus facile l’utilisation de Git.
Tu peux retrouver d’autre plateforme qui s’appuie elles aussi sur le moteur Git, telle que Bitbucket, GitLab, … En 2018, d’après une étude de StackOverflow, 87% des développeurs utilisaient Git par rapport à d’autre système de contrôle de version.
Comme je le disais, Git est un contrôleur de version. C’est-à-dire qu’il permet de sauvegarder différentes versions d’un ou plusieurs fichiers. Lorsqu’un développeur créer des projets, il sauvegarde ses fichiers avec le moteur Git sur la plateforme Github. A chaque fois que le développeur sauvegarde son ou ses fichiers, une version est créée. Ce qui permets, en cas de problème, de pouvoir revenir sur une version antérieure.
Git s’exécute à la base en ligne de commande et peut être difficile à appréhender au début. GitHub a rendu l’utilisation de Git beaucoup plus facile. GitHub propose ainsi une interface agréable à utiliser et à manipuler pour gérer ses projets.
Pourquoi utiliser Github ?
Aujourd’hui GitHub s’est imposé comme le numéro 1 dans l’hébergement des projets open sources avec plus de 27 millions d’utilisateurs. Github a su s’imposer grâce à l’espace collaboratif qu’il apporte.
En effet, GitHub apporte un aspect social sur sa plateforme. On y retrouve la possibilité de suivre des utilisateurs, des projets, un système de vote par projet (stars), la possibilité d’échanger avec d’autre utilisateur sur un projet ainsi que la possibilité d’apporter des améliorations à des projets déjà existant.
Aujourd’hui de nombreuses grandes sociétés utilisent ce service. On peut notamment citer WordPress, Facebook avec leur projet React, ou encore Amazon.
D’ailleurs, aujourd’hui, les recruteurs s’intéressent particulièrement aux « repository » (projets) réaliser par les candidats sur GitHub pour évaluer les compétences. Dans le monde du développement c’est un peu le CV du développeur, la vitrine du développeur, un endroit sur lequel il peut montrer de quoi il est capable ainsi que ces réalisations.
Les intérêts d’utiliser GitHub
Récupérer du code déjà existants / projet
Comme je le disais précédemment, sur GitHub on trouve des millions de repository open source. Il est ainsi possible les récupérer pour travailler dessus en le modifiant ou simplement pour utiliser le code existant afin de l’intégrer dans l’un de ces projets.
On y trouve plein de repository utiles qui peuvent être utiliser dans les projets telle que : des datepicker pour choisir une date dans un formulaire, des animations CSS, des templates HTML, des outils pour créer des fichiers Word ou Excel.
Tu trouveras énormément de ressources sur GitHub. Avant de te lancer dans un nouveau projet, regarde sur GitHub si quelqu’un ne l’a pas déjà fait, ça ne sert à rien de réinventer la roue.
Sauvegarder son code
GitHub est une structure décentralisée, c’est-à-dire que la plateforme n’est pas hébergée sur ton ordinateur, ce qui te permets de sauvegarder ton code en ligne. Ainsi tu peux y accéder depuis n’importe quel autre ordinateur. Pratique si ton ordi rend l’âme.
Gérer ses versions
Lorsque que tu sauvegardes ton code, on appelle ça un « commit », un numéro de version, sous la forme « b6ap9h » est donné à l’état actuel des fichiers.
Avec ce numéro, aussi appelé « hash », tu as la possibilité de revenir à des versions antérieures de ton projet. Le moteur Git, enregistre aussi les différences entre deux versions, ce qui te permets de comparer visuellement ce que tu as modifier entre deux commits.
Travailler à plusieurs sur un projet
Un des énormes avantages de Git, voir le plus efficace est le fait de pouvoir travailler à plusieurs sur un projet.
Il peut t’arriver de travailler seul sur un projet mais dans la majorité des projets tu devras travailler en équipe et chacun sur des fonctionnalités différentes. Ce qui implique que tu modifieras surement un fichier en même temps qu’un membre de ton équipe.
Alors comment ça se passe dans ce cas-là ?
C’est la toute la force du moteur Git. Il va comparer les modifications faites par les deux développeurs et les fusionner comme un grand, sans qu’il n’y ait besoin de lui dire quoi que ce soit. En revanche, si vous avez modifier la même ligne de code, Git ne saura pas laquelle il faut choisir, ce qui entraine un « conflit ». A ce moment-là seulement, il l’intervention humaine est nécessaire pour décider si l’on garde l’une ou l’autre des versions. Il est aussi possible de garder les 2 modifications en retouchant le code.
Proposer des améliorations de code
Quand tu auras commencé à naviguer sur GitHub, tu vas surement trouver plein de reposiroty intéressants que tu utiliseras dans tes projets. Parfois, tu peux trouver qu’il manque certaines fonctionnalités, ou que le projet pourrait être amélioré, ou simplement qu’il y a un bug.
A ce moment, tu pourras, à partir du code déjà existant, développer ces fonctionnalités manquantes, et les proposer au créateur du projet pour qu’il les intègre (ou non). C’est ce que l’on appelle des « pull request ». Ainsi tu participes à l’évolution du projet.
Communiquer avec les autres développeurs
La plateforme GitHub apporte un aspect social à l’utilisation de Git. Comme je l’ai dit précédemment, GitHub offre la possibilité d’interagir sur les différents « repository » comme sur un réseau social avec un système de « star » (comme les like), la possibilité de suivre des utilisateurs ou des « repository ». Mais il offre aussi la possibilité d’échanger avec les autres utilisateurs sur un repository.
Si un jour tu utilises l’un de ses repository dans ton projet et que tu es bloqué ou que tu ne comprends pas quelque chose correctement ou encore qu’il te semble qu’il y est un bug ; tu as la possibilité d’ouvrir une « issue » sur le repositoy. C’est une sorte de topic que tu ouvres pour que les autres développeurs apportent des réponses ou des explications.
Maintenant que tu commences à appréhender un peu le moteur Git et la plateforme GitHub, tu doit surement avoir envie de tester tout ça.
Parfait, on en apprend toujours plus!
Content que ça te plaise 😀