Qu’est-ce que GitHub ?
GitHub est une plateforme basée sur le cloud permettant d’héberger des dépôts Git et de collaborer avec d’autres développeurs. Il reprend toutes les fonctionnalités de Git en local — suivi des modifications, gestion des branches, fusion de code — et y ajoute une interface web dotée d’outils pour la revue de code, le suivi des tickets (issue tracking), l’automatisation et la gestion de projet.
Considérez Git comme le moteur et GitHub comme le tableau de bord. Git s’exécute sur votre machine pour gérer le versioning. GitHub héberge votre dépôt en ligne, permettant à d’autres de consulter votre code, de suggérer des améliorations, de signaler des bugs et de contribuer à de nouvelles fonctionnalités via un workflow structuré.
Avec plus de 100 millions de développeurs et 330 millions de dépôts, GitHub est l’endroit où le monde entier construit des logiciels. Les projets open source, les startups, les entreprises et les développeurs indépendants l’utilisent tous comme plateforme de collaboration principale. Si vous apprenez à coder, posséder un profil GitHub est aussi important que d’avoir un portfolio.
Pourquoi GitHub est essentiel
Le contrôle de version sur votre machine est utile, mais la collaboration nécessite un espace partagé. GitHub offre cet espace avec des fonctionnalités qui rendent le travail d’équipe structuré et transparent :
- Hébergement centralisé — votre code réside dans le cloud, accessible de partout, avec une sauvegarde qui ne sera jamais perdue.
- Pull requests — proposez des modifications, examinez le code ligne par ligne et fusionnez uniquement lorsque tout le monde est d’accord.
- Issues et tableaux de projet — suivez les bugs, gérez les fonctionnalités et organisez le travail avec des labels, des jalons et des tableaux kanban.
- Automatisation CI/CD — GitHub Actions exécute les tests, build et déploie votre code automatiquement à chaque push.
- Communauté — découvrez des projets open source, contribuez-y et forgez votre réputation de développeur.
- Sécurité — l’analyse des dépendances, la détection de secrets et les workflows de revue de code permettent de détecter les vulnérabilités rapidement.
GitHub n’est pas seulement un service d’hébergement de code. C’est une plateforme de développement qui couvre l’ensemble du cycle de vie du logiciel, de l’idée au déploiement.
Configuration de GitHub
Création d’un compte
Rendez-vous sur github.com et inscrivez-vous avec votre adresse e-mail. Choisissez le forfait gratuit — il inclut tout ce dont vous avez besoin pour commencer.
Configuration de Git
Après avoir créé votre compte, configurez Git pour qu’il fonctionne avec GitHub :
# Set your identity
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
# Set the default branch name
git config --global init.defaultBranch main
Connexion via SSH
Les clés SSH vous permettent de vous authentifier sans avoir à saisir votre mot de passe à chaque fois :
# Generate a new SSH key
ssh-keygen -t ed25519 -C "[email protected]"
# Start the SSH agent
eval "$(ssh-agent -s)"
# Add your key to the agent
ssh-add ~/.ssh/id_ed25519
# Copy the public key to add to GitHub
cat ~/.ssh/id_ed25519.pub
Allez dans GitHub Settings > SSH and GPG keys > New SSH key, collez votre clé publique et enregistrez. Vous pouvez désormais cloner, pusher et puller en utilisant des URLs SSH.
Fonctionnalités principales de GitHub
Repositories
Un repository est un projet sur GitHub. Il contient votre code, vos fichiers de configuration, votre documentation et l’historique complet de Git. Chaque repository dispose de :
- Un onglet code pour parcourir les fichiers
- Un onglet issues pour le suivi du travail
- Un onglet pull requests pour la revue de code
- Un wiki pour la documentation
- Un onglet settings pour le contrôle d’accès
Créez un nouveau repository depuis la page d’accueil de GitHub ou via la CLI :
# Create a new repo on GitHub, then clone it
gh repo create my-project --public --clone
Issues
Les issues sont le moyen de suivre l’avancement du travail. Utilisez-les pour les rapports de bugs, les demandes de fonctionnalités, les tâches et les discussions :
# Create an issue from the command line
gh issue create --title "Fix login bug" --body "Users cannot log in with empty email"
Chaque issue peut comporter :
- Des labels — pour catégoriser par type (bug, amélioration, documentation)
- Des assignees — pour définir qui est responsable
- Des milestones — pour regrouper les issues par version ou par sprint
- Des pull requests liées — pour indiquer quelles PR ferment l’issue
Pull requests
Les pull requests sont le cœur de la collaboration sur GitHub. Elles vous permettent de proposer des modifications, de passer le code en revue et de fusionner lorsque tout est prêt :
# Create a branch, make changes, push, then open a PR
git checkout -b fix-login-bug
# make changes
git add .
git commit -m "Fix null check in login handler"
git push origin fix-login-bug
gh pr create --title "Fix login bug" --body "Adds null check for empty email"
Les pull requests incluent des outils de revue de code, des vérifications automatisées, des fils de discussion et des contrôles de fusion. C’est la méthode standard pour intégrer du code dans une base de code partagée.
GitHub Actions
Actions permet d’automatiser votre workflow de développement. Rédigez des fichiers YAML qui définissent ce qui se passe lors de certains événements :
# .github/workflows/ci.yml
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: npm test
Les utilisations courantes incluent l’exécution de tests à chaque push, le déploiement en production lors d’un merge vers main et la construction d’images Docker lors d’une release.
GitHub Pages
Hébergez des sites web statiques directement depuis votre repository :
# Enable Pages in your repo settings, then push to the gh-pages branch
git checkout -b gh-pages
git push origin gh-pages
Pages est idéal pour les sites de documentation, les portfolios, les blogs et les landing pages. Il supporte les domaines personnalisés, HTTPS et les générateurs de sites statiques comme Jekyll et Astro.
Travailler en équipe
Forker des dépôts
Le fork crée votre propre copie du dépôt d’un autre utilisateur. Vous pouvez ainsi effectuer des modifications sans affecter l’original :
# Fork a repo using the GitHub CLI
gh repo fork owner/repo --clone
# Or fork and add a remote
git remote add fork https://github.com/your-username/repo.git
Le fork est la méthode standard pour contribuer à l’open source. Vous forkez le dépôt, apportez des modifications dans votre fork, puis ouvrez une pull request vers le dépôt original.
Revue de code
Les outils de revue de code de GitHub vous permettent de commenter des lignes spécifiques, de suggérer des modifications et de demander des corrections :
- Commentaires en ligne — pour discuter de lignes de code précises
- Suggestions de modifications — pour proposer des corrections que les auteurs peuvent accepter en un clic
- Approbations de revue — pour approuver, demander des changements ou commenter l’ensemble de la PR
- Code owners — pour assigner automatiquement des relecteurs en fonction des fichiers modifiés
Protection des branches
Protégez les branches importantes contre les modifications accidentelles ou non autorisées :
- Exiger des revues de pull request avant la fusion
- Exiger la réussite des status checks (la CI doit être au vert)
- Exiger un historique linéaire (pas de merge commits)
- Restreindre les personnes autorisées à pusher sur la branche
- Exiger des commits signés
Gestion de projet
GitHub Projects propose des tableaux kanban, des tables et des roadmaps pour gérer le travail :
- Créer des colonnes telles que “À faire”, “En cours” et “Terminé”
- Lier des issues et des pull requests à des cartes
- Automatiser le déplacement des cartes en fonction d’événements
- Suivre la progression grâce aux insights et aux graphiques
Bonnes pratiques
- Rédigez des fichiers README descriptifs — expliquez l’objectif de votre projet, comment l’installer et comment y contribuer.
- Utilisez des modèles d’issues — standardisez les rapports de bugs et les demandes de fonctionnalités.
- Activez la protection des branches — exigez des revues de code et la validation de la CI avant toute fusion.
- Rédigez des descriptions de PR pertinentes — expliquez ce qui a changé, pourquoi, et comment tester les modifications.
- Utilisez GitHub Actions — automatisez les tests et le déploiement au lieu de les effectuer manuellement.
- Gardez vos dépôts ciblés — un projet par repo, évitez les monolithes de code sans lien entre eux.
- Taguez vos releases — utilisez le versionnage sémantique et GitHub Releases pour marquer les versions stables.
- Contribuez à l’open source — forkez, corrigez et soumettez des pull requests pour acquérir de l’expérience et de la notoriété.
Erreurs courantes
- Pousser des données sensibles, comme des clés API ou des mots de passe, vers un dépôt public.
- Ne pas rédiger de README, laissant les visiteurs perplexes quant à l’utilité du projet.
- Créer des pull requests sans description ni contexte pour les relecteurs.
- Ignorer les issues et les laisser s’accumuler sans triage.
- Ne pas utiliser la protection des branches, permettant ainsi des push directs sur main.
- Committer node_modules, .env ou d’autres fichiers qui devraient figurer dans le .gitignore.
- Utiliser GitHub comme service de sauvegarde sans avoir compris le fonctionnement de Git en local au préalable.
Quelle est la suite ?
Vous comprenez désormais les fonctionnalités principales de GitHub : les repositories, les issues, les pull requests et les Actions. La prochaine étape logique est de vous pencher sur Git pour maîtriser le système de contrôle de version sous-jacent, notamment le branching, le merging et le rebasing. Choisissez un projet, contribuez-y et laissez la pratique faire ses preuves.