Git

GitHub et les plateformes Git

Découvrez GitHub et les fonctionnalités qu'il apporte à Git

Qu'est-ce que GitHub ?

GitHub est une plateforme d'hébergement de code basée sur Git. Créée en 2008 et rachetée par Microsoft en 2018, c'est aujourd'hui la plus grande plateforme de développement collaboratif au monde avec plus de 100 millions de développeurs.

GitHub n'est pas Git ! Git est l'outil de versioning qui fonctionne en local, tandis que GitHub est une plateforme web qui héberge vos dépôts Git et ajoute des fonctionnalités collaboratives.

Le principe

GitHub (et ses alternatives comme GitLab, Bitbucket) agit comme un serveur distant pour vos dépôts Git. Au lieu de garder votre code uniquement sur votre machine, vous pouvez le synchroniser avec GitHub pour :

  • Sauvegarder votre code en ligne
  • Partager vos projets avec d'autres développeurs
  • Collaborer à plusieurs sur un même projet
  • Contribuer à des projets open source

Les fonctionnalités majeures de GitHub

1. Hébergement de code

  • Dépôts publics : Partage de projets open source
  • Dépôts privés : Projets personnels ou d'entreprise
  • Interface web : Naviguer dans le code sans cloner le dépôt

2. Collaboration

Pull Requests (PR)

Les Pull Requests permettent de proposer des modifications de code et de les faire réviser avant de les fusionner. C'est le cœur du workflow collaboratif sur GitHub.

Issues

Les Issues servent à :

  • Signaler des bugs
  • Proposer de nouvelles fonctionnalités
  • Discuter d'améliorations
  • Organiser les tâches à faire

Code Review

Système de revue de code intégré permettant de :

  • Commenter des lignes de code spécifiques
  • Demander des modifications
  • Approuver ou refuser des changements

3. Gestion de projet

  • Projects : Tableaux Kanban pour organiser le travail
  • Milestones : Jalons pour regrouper des issues
  • Labels : Étiquettes pour catégoriser les issues et PR
  • Assignees : Assigner des tâches à des développeurs

4. Automatisation et CI/CD

GitHub Actions permet d'automatiser des workflows :

  • Tests automatiques à chaque push
  • Déploiement automatique
  • Vérification de la qualité du code
  • Publication de packages

5. Documentation

  • README.md : Documentation visible sur la page d'accueil du dépôt
  • Wiki : Documentation complète et organisée
  • GitHub Pages : Hébergement gratuit de sites web statiques
  • Discussions : Forum de discussion pour la communauté

6. Sécurité

  • Dependabot : Détection automatique de failles de sécurité
  • Code scanning : Analyse du code pour détecter des vulnérabilités
  • Secret scanning : Détection de clés API et mots de passe exposés
  • Branch protection : Règles de protection des branches principales

Les alternatives

D'autres plateformes offrent des fonctionnalités similaires :

  • GitLab : Solution complète avec CI/CD intégré très puissant
  • Bitbucket : Intégration forte avec l'écosystème Atlassian (Jira, Confluence)
  • Gitea : Solution open source auto-hébergeable
  • Azure DevOps : Plateforme Microsoft intégrée aux outils de développement

Pourquoi utiliser GitHub ?

  • Portfolio : Montrez vos projets aux recruteurs
  • Open Source : Contribuez à des projets mondiaux
  • Apprentissage : Apprenez en lisant le code des autres
  • Collaboration : Travaillez en équipe efficacement
  • Sauvegarde : Ne perdez jamais votre code
  • Communauté : Rejoignez 100+ millions de développeurs

Dans les prochains chapitres, vous apprendrez à créer des dépôts Git et à les synchroniser avec GitHub !