GitHub est une plateforme populaire basée sur le cloud qui héberge un système de contrôle de version appelé Git, permettant aux développeurs de collaborer sur des projets logiciels.
Git permet aux développeurs de suivre les modifications de code, de revenir aux versions précédentes et de travailler sur des branches (versions) de fonctionnalités distinctes sans affecter le code principal. L’interface conviviale de GitHub et ses fonctionnalités de collaboration, telles que les demandes de retrait (pull requests), simplifient la gestion des projets de développement logiciel, ce qui en fait un outil essentiel pour les équipes de toutes tailles.
D'où vient le nom "GitHub ?"
Le nom « GitHub » est une combinaison de deux mots : « Git » et « Hub ».
- Git : Git est un système de gestion de versions décentralisé, créé par Linus Torvalds en 2005. Il est conçu pour gérer le code source de projets de développement, permettant aux développeurs de suivre les modifications, de collaborer et de gérer différentes versions de leur code.
- Hub : Le mot « Hub » signifie « centre » ou « point central ». GitHub se veut être un centre ou une plateforme où les développeurs peuvent héberger, partager et collaborer sur des projets utilisant Git. C’est un point de rencontre pour les développeurs du monde entier.
D'où vient le nom Git?
Le mot « Git » a été choisi par Linus Torvalds, le créateur de Git, lorsqu’il a développé ce système de gestion de versions en 2005. Le terme « git » est un mot familier en anglais britannique qui signifie, de manière un peu désinvolte, « imbécile » ou « crétin ». Torvalds a lui-même mentionné que le nom était une sorte de plaisanterie ou d’auto-dérision.
Voici les principales caractéristiques et les avantages de GitHub pour les développeurs:
Principales caractéristiques de GitHub :
- Hébergement de Git : GitHub est un service cloud qui héberge des systèmes de contrôle de version (VCS) Git. Cela permet aux développeurs de collaborer et de modifier des projets partagés tout en conservant un historique détaillé de leur progression.
- Contrôle de version : GitHub offre un contrôle de version, qui permet aux développeurs de suivre et de gérer les modifications apportées au code source. Cela leur permet d’analyser les modifications, de les annuler en cas d’erreur et de travailler simultanément sur des projets sans interférer avec le travail des autres.
- Branches de fonctionnalités : GitHub offre des branches de fonctionnalités, qui permettent aux développeurs de créer des dépôts locaux isolés pour apporter des modifications au code sans affecter la branche principale.
- Demandes de tirage (Pull requests) : Les demandes de tirage permettent aux développeurs de proposer des modifications à d’autres personnes travaillant sur le même projet. Cela facilite la collaboration et l’examen du code.
Avantages de GitHub pour les développeurs :
- Collaboration améliorée : GitHub permet aux développeurs de travailler ensemble sur des projets, de partager du code et de suivre les modifications.
- Gestion de projet simplifiée : GitHub fournit des outils pour gérer les projets, suivre les problèmes et collaborer avec les autres.
- Intégration de Git : En tant que plateforme basée sur le cloud intégrant les fonctions de contrôle de version de Git, GitHub permet de suivre et de gérer les modifications de code en temps réel, avec toutes les fonctions de Git disponibles au même endroit.
- Interface conviviale : L’interface utilisateur de GitHub est plus conviviale que celle de Git, la rendant accessible aux personnes ayant peu ou pas de connaissances techniques.
- Dépôts Open Source : GitHub héberge plus de 100 millions de dépôts, dont la majorité sont des projets open source, ce qui en fait un outil précieux pour la collaboration et le partage de code.
Différence fondamentale entre Git et GitHub
La principale différence entre Git et GitHub réside dans leur nature et leur fonction :
-
Git est un système de contrôle de version distribué utilisé pour suivre les modifications de fichiers, généralement du code source, dans le cadre du développement logiciel. Il s’agit d’un logiciel open-source lancé en 2005 et utilisé par plus de 87% des développeurs.
-
GitHub est une plateforme en ligne qui héberge des dépôts Git. Il s’agit d’un service basé sur le cloud qui offre une interface conviviale pour interagir avec les dépôts Git.
En résumé:
- Git est un outil permettant de gérer le code source et son historique.
- GitHub est une plateforme permettant de stocker et de partager du code géré avec Git.
Pour mieux illustrer:
Imaginez un groupe de musiciens travaillant sur une nouvelle chanson.
- Git serait comme un carnet de partitions où chaque musicien note ses modifications et idées.
- GitHub serait comme un studio d’enregistrement en ligne où le groupe peut partager ses partitions (via Git), collaborer sur les modifications, et enregistrer différentes versions de la chanson.
GitHub propose également des fonctionnalités supplémentaires qui facilitent la collaboration et la gestion de projets, telles que :
- Interface graphique: GitHub offre une interface utilisateur graphique plus conviviale que la ligne de commande Git, la rendant accessible à un public plus large.
- Fonctionnalités de collaboration: GitHub propose des outils pour gérer les équipes, suivre les problèmes, et discuter des modifications.
- Hébergement de projets: GitHub héberge plus de 100 millions de dépôts, dont une majorité de projets open source.
Fonction des « Commits » sur GitHub
Les « commits » sont des éléments essentiels à la fonction de contrôle de version offerte par Git et hébergée par GitHub. Ils représentent un instantané de l’état de votre projet à un moment donné.
Voici une explication plus détaillée de leur fonction :
-
Enregistrement des modifications: Chaque fois que vous effectuez des modifications sur un fichier de votre projet hébergé sur GitHub, vous devez créer un commit pour enregistrer ces modifications. Ce commit agit comme un marqueur dans l’historique de votre projet.
-
Message de description: Lorsque vous créez un commit, vous devez inclure un message décrivant les modifications apportées. Cela permet de comprendre facilement les modifications apportées au fil du temps et facilite la recherche de commits spécifiques dans l’historique du projet.
-
Suivi des modifications: Les commits permettent de suivre précisément qui a modifié quoi et quand. Cela est particulièrement utile lors de la collaboration sur des projets, car cela permet de savoir qui est responsable de chaque modification.
-
Retour en arrière: Si vous rencontrez des problèmes avec votre code, vous pouvez utiliser les commits pour revenir à une version antérieure du projet. Cela est possible car chaque commit conserve une copie complète du fichier modifié.
Avantages de l’utilisation des branches sur GitHub pour le développement de projets
L’utilisation de branches sur GitHub offre de nombreux avantages pour le développement d’un projet. Voici les principaux avantages, basés sur les sources que vous avez fournies :
-
Isolation des modifications et protection de la branche principale : Les branches vous permettent de créer des copies distinctes de votre projet, appelées « branches de fonctionnalités », où vous pouvez travailler sur de nouvelles fonctionnalités ou corriger des bogues sans affecter la branche principale, qui contient le code stable du projet. Cela garantit que le code principal reste fonctionnel même si des erreurs se produisent dans une branche.
-
Collaboration et travail simultané : Chaque membre de l’équipe peut créer sa propre branche à partir de la branche principale et travailler sur des tâches spécifiques sans interférer avec le travail des autres. Cela permet un développement parallèle plus efficace.
-
Tests et expérimentations sans risques : Les branches offrent un environnement sécurisé pour tester de nouvelles idées, expérimenter de nouvelles fonctionnalités ou refactoriser le code existant sans craindre de compromettre la stabilité du projet principal.
-
Meilleure traçabilité et gestion des versions : Lorsque vous fusionnez une branche dans la branche principale (processus appelé « pull request » sur GitHub), vous créez un historique clair des modifications apportées et de leur auteur. Cela facilite le suivi des modifications, l’identification des sources de bogues et le retour à des versions antérieures si nécessaire.
GitHub au-delà du développement logiciel
Bien que GitHub soit souvent associé aux développeurs, d’autres profils d’utilisateurs peuvent également bénéficier de ses fonctionnalités. L’article « Qu’est-ce que GitHub et Comment L’utiliser ? Guide Complet (2023) » mentionne quelques exemples :
-
Équipes de contenu et de marketing : GitHub peut être utilisé pour organiser des projets de contenu, suivre les versions de documents et collaborer sur la rédaction. Par exemple, une équipe marketing pourrait utiliser GitHub pour gérer le contenu d’un site Web, en créant des branches pour chaque nouvelle version du site et en utilisant les demandes de tirage (pull requests) pour valider les modifications avant de les publier.
-
Créatifs indépendants : Les graphistes, écrivains, musiciens et autres créatifs peuvent utiliser GitHub pour gérer leurs projets, partager leur travail avec des clients ou des collaborateurs, et suivre les différentes versions de leurs créations.
En effet, l’utilisation de GitHub ne se limite pas au code. Toute équipe travaillant sur des projets impliquant des fichiers, des documents ou du contenu numérique peut tirer parti de ses fonctionnalités de contrôle de version, de collaboration et de gestion de projet.
En résumé : GitHub offre une plateforme flexible et puissante qui peut être utilisée par divers professionnels et équipes, au-delà du développement logiciel.
GitHub : Gratuit ou payant ?
GitHub propose un plan gratuit avec des fonctionnalités de base, ainsi que des plans payants avec des fonctionnalités supplémentaires.
- Plan gratuit : Le plan gratuit de GitHub offre un nombre illimité de dépôts publics et privés, ainsi qu’un nombre illimité de collaborateurs. Cela signifie que vous pouvez héberger vos projets et collaborer avec d’autres personnes sans frais. Cependant, l’espace de stockage est limité à 500 Mo pour ce plan.
- Plans payants : Pour un aperçu plus complet des fonctionnalités de GitHub, vous pouvez opter pour un plan payant. Les plans payants offrent davantage d’espace de stockage, des fonctionnalités de collaboration avancées et un support technique dédié.
Voici un lexique des termes couramment utilisés sur GitHub, avec des explications pour chaque terme :
1. Repository (Repo)
- Un dépôt est un espace où tous les fichiers d’un projet sont stockés. Il peut contenir des fichiers, des répertoires, et un historique des modifications apportées au projet.
2. Branch
- Une branche est une version parallèle du dépôt. Les branches permettent de travailler sur différentes fonctionnalités ou corrections sans affecter la version principale (souvent appelée
main
oumaster
).
3. Commit
- Un commit est un enregistrement d’un ensemble de modifications dans le dépôt. Chaque commit est accompagné d’un message descriptif expliquant les changements apportés.
4. Pull Request (PR)
- Une demande de tirage (pull request) est une proposition pour fusionner des modifications d’une branche (souvent d’un fork) dans une autre. Les PRs sont souvent utilisées pour réviser le code avant d’intégrer les changements.
5. Fork
- Un fork est une copie d’un dépôt. Lorsque vous forkez un projet, vous créez une nouvelle version du dépôt sur votre propre compte GitHub, que vous pouvez modifier indépendamment de l’original.
6. Merge
- Fusionner (merge) signifie combiner les modifications d’une branche dans une autre. C’est souvent l’action finale après qu’une pull request a été approuvée.
7. Issue
- Les issues sont utilisées pour signaler des bogues, suggérer de nouvelles fonctionnalités ou poser des questions sur un projet. Elles peuvent être discutées et résolues dans le cadre du développement du projet.
8. GitHub Actions
- GitHub Actions est un service d’intégration continue (CI) et de livraison continue (CD) qui permet d’automatiser les workflows pour les projets. Vous pouvez configurer des scripts pour exécuter des tests, déployer du code, etc.
9. Release
- Une release (version) est une version spécifique du projet qui a été jugée stable et prête à être distribuée. Elle inclut souvent des notes de version décrivant les modifications.
10. Gist
- Un gist est un moyen simple de partager des morceaux de code ou du texte. Les gists peuvent être publics ou privés, et peuvent être utilisés pour partager des scripts, des configurations, etc.
11. Clone
- Cloner un dépôt signifie créer une copie locale d’un dépôt GitHub sur votre machine pour que vous puissiez le modifier et le gérer hors ligne.
12. Milestone
- Les jalons (milestones) sont utilisés pour regrouper un ensemble d’issues ou de pull requests liées à une même étape ou objectif dans le projet.
13. Contributor
- Un contributeur est toute personne qui a participé au développement d’un projet, que ce soit en soumettant du code, en ouvrant des issues, ou en contribuant d’une autre manière.
14. Collaborator
- Un collaborateur est une personne qui a reçu l’accès en écriture à un dépôt. Contrairement aux contributeurs, les collaborateurs peuvent directement pousser du code dans le dépôt sans passer par des pull requests.
15. Wiki
- Chaque projet sur GitHub peut avoir un wiki, une collection de pages de documentation que les utilisateurs peuvent éditer pour fournir des informations supplémentaires sur le projet.
16. README
- Le fichier
README
est souvent le premier fichier que les visiteurs voient lorsqu’ils accèdent à un dépôt. Il contient des informations de base sur le projet, comme des instructions d’installation, des descriptions, etc.
17. Contributor License Agreement (CLA)
- Un CLA est un accord légal que les contributeurs doivent signer pour contribuer à un projet open source, garantissant que les droits sur le code sont correctement transférés.
18. Protected Branch
- Une branche protégée est une branche pour laquelle des restrictions spéciales ont été définies, comme l’interdiction de pousser des modifications directement ou l’obligation de passer par une pull request approuvée.
19. Webhook
- Les webhooks sont des outils qui permettent de notifier des services externes (comme un serveur CI/CD) des événements survenant dans un dépôt, comme la création d’une nouvelle pull request ou un nouveau commit.
20. GitHub Pages
- GitHub Pages est un service de GitHub permettant d’héberger des sites web directement à partir d’un dépôt GitHub. Il est souvent utilisé pour héberger la documentation d’un projet ou des sites web personnels.
Ce lexique devrait vous aider à mieux naviguer et comprendre les fonctionnalités et terminologies sur GitHub.
Notez que le site sur lequel vous êtes est construit avec Discourse qui est développé en open source sur GitHub: