Skip to content

Latest commit

 

History

History

README.md

🔝 Retour au Sommaire

Formation Git - Module 10 : Cas pratiques et projets

6. Quiz et certification finale

Félicitations d'être arrivé jusqu'ici ! Ce chapitre final vous permet d'évaluer vos connaissances, d'identifier les domaines à approfondir, et de valider votre maîtrise de Git. Il ne s'agit pas d'un examen stressant, mais d'un outil d'auto-évaluation pour mesurer votre progression.


Objectifs de cette certification

Cette évaluation vous permet de :

  • ✅ Mesurer votre compréhension de Git
  • ✅ Identifier vos points forts et axes d'amélioration
  • ✅ Valider que vous êtes prêt pour des projets réels
  • ✅ Avoir confiance en vos compétences Git
  • ✅ Obtenir un badge de compétence personnel

Important : Il ne s'agit pas de tout connaître par cœur, mais de savoir :

  • Comprendre les concepts fondamentaux
  • Résoudre les problèmes courants
  • Savoir où chercher l'information quand nécessaire

Récapitulatif de la formation

Avant l'évaluation, rappelons ce que vous avez appris.

Module 1 : Introduction à Git

  • ✅ Qu'est-ce qu'un système de contrôle de version
  • ✅ Installation et configuration de Git
  • ✅ Création d'un premier dépôt

Module 2 : Concepts fondamentaux

  • ✅ Les 3 états : Working Directory, Staging Area, Repository
  • ✅ Architecture interne de Git
  • ✅ Suivi des modifications : add, commit, status, log, diff

Module 3 : Corriger et modifier

  • ✅ Modifier le dernier commit (amend)
  • ✅ Annuler des modifications (restore, reset)
  • ✅ Différence entre reset --soft, --mixed, --hard
  • ✅ Annuler un commit publié (revert)

Module 4 : Branches

  • ✅ Créer et naviguer entre branches
  • ✅ Fusionner des branches (merge)
  • ✅ Résoudre les conflits
  • ✅ Comprendre le rebase
  • ✅ Choisir entre merge et rebase

Module 5 : Dépôts distants

  • ✅ Cloner un dépôt
  • ✅ Gérer les dépôts distants (remote)
  • ✅ Synchroniser : fetch, pull, push
  • ✅ Authentification SSH et PAT
  • ✅ Fork et Pull Request

Module 6 : Fonctions avancées

  • ✅ Stash : mettre de côté du travail
  • ✅ Cherry-pick : appliquer des commits spécifiques
  • ✅ Rebase interactif pour nettoyer l'historique
  • ✅ Reflog : récupérer du travail perdu
  • ✅ Bisect : trouver un bug
  • ✅ Tags et releases

Module 7 : Bonnes pratiques

  • ✅ Messages de commit efficaces
  • ✅ Commits atomiques
  • ✅ Workflows collaboratifs (Git Flow, GitHub Flow)
  • ✅ Organisation des branches
  • ✅ Revue de code

Module 8 : Dépannage

  • ✅ Résoudre detached HEAD
  • ✅ Annuler un merge ou rebase
  • ✅ Récupérer du travail perdu
  • ✅ Gérer les erreurs courantes

Module 9 : Outils

  • ✅ Interfaces graphiques
  • ✅ Git dans les IDE
  • ✅ Intégration CI/CD

Module 10 : Cas pratiques

  • ✅ Scénarios courants et résolutions
  • ✅ Contribution open source
  • ✅ Projet en équipe avec Git Flow
  • ✅ Projet personnel guidé
  • ✅ Simulations de situations complexes

Évaluation par module

Module 1 : Introduction à Git

Questions d'auto-évaluation :

  1. Pourquoi utiliser Git plutôt que copier/coller des dossiers ?

    • Tracez-vous l'historique complet ?
    • Pouvez-vous revenir en arrière facilement ?
    • Pouvez-vous travailler à plusieurs sans conflits ?
  2. Savez-vous configurer Git sur une nouvelle machine ?

    git config --global user.name "Votre Nom"
    git config --global user.email "email@example.com"
  3. Pouvez-vous initialiser un nouveau projet avec Git ?

    git init

✅ Vous maîtrisez ce module si :

  • Vous comprenez l'utilité de Git
  • Vous savez configurer Git
  • Vous pouvez créer un dépôt local

Module 2 : Concepts fondamentaux

Questions d'auto-évaluation :

  1. Pouvez-vous expliquer les 3 états de Git à quelqu'un ?

    • Working Directory (zone de travail)
    • Staging Area (zone d'index)
    • Repository (dépôt)
  2. Quelle est la différence entre ces commandes ?

    • git add → Ajoute à la staging area
    • git commit → Enregistre dans le repository
    • git status → Montre l'état actuel
  3. Comment voir l'historique des commits ?

    git log
    git log --oneline
    git log --graph
  4. Comment voir les différences avant de commiter ?

    git diff              # Working vs Staging
    git diff --staged     # Staging vs Repository

✅ Vous maîtrisez ce module si :

  • Vous comprenez le flux de travail Git
  • Vous utilisez add, commit, status, log, diff avec aisance
  • Vous savez ce que fait chaque commande

Module 3 : Corriger et modifier

Questions d'auto-évaluation :

  1. Vous avez oublié un fichier dans votre dernier commit. Que faire ?

    git add fichier-oublie.txt
    git commit --amend --no-edit
  2. Quelle est la différence entre ces trois commandes ?

    • git reset --soft HEAD~1 → Annule le commit, garde les changements stagés
    • git reset --mixed HEAD~1 → Annule le commit, garde les changements non stagés
    • git reset --hard HEAD~1 → Annule tout (dangereux !)
  3. Comment annuler des modifications locales non commitées ?

    git restore fichier.txt
  4. Comment annuler un commit déjà pushé ?

    git revert [commit-hash]

✅ Vous maîtrisez ce module si :

  • Vous savez corriger vos erreurs
  • Vous comprenez la différence entre reset et revert
  • Vous pouvez annuler des modifications en toute sécurité

Module 4 : Branches

Questions d'auto-évaluation :

  1. Pourquoi utiliser des branches ?

    • Travailler sur des fonctionnalités isolées
    • Ne pas casser le code principal
    • Faciliter le travail en équipe
  2. Comment créer et changer de branche ?

    git checkout -b nouvelle-branche
    # ou
    git switch -c nouvelle-branche
  3. Quelle est la différence entre merge et rebase ?

    • merge : Conserve l'historique complet, crée un commit de merge
    • rebase : Réécrit l'historique, historique linéaire
  4. Comment résoudre un conflit de merge ?

    • Ouvrir le fichier en conflit
    • Supprimer les marqueurs <<<<<<<, =======, >>>>>>>
    • Choisir la bonne version
    • git add puis git commit
  5. Quand ne JAMAIS utiliser rebase ?

    • Sur des commits déjà pushés et partagés avec d'autres

✅ Vous maîtrisez ce module si :

  • Vous créez des branches naturellement
  • Vous savez fusionner des branches
  • Vous gérez les conflits sans panique
  • Vous comprenez quand utiliser merge vs rebase

Module 5 : Dépôts distants

Questions d'auto-évaluation :

  1. Quelle est la différence entre ces commandes ?

    • git fetch → Récupère les changements sans les appliquer
    • git pull → Récupère et applique les changements (= fetch + merge)
    • git push → Envoie vos commits vers le serveur
  2. Comment lier un dépôt local à GitHub ?

    git remote add origin https://github.com/user/repo.git
    git push -u origin main
  3. Qu'est-ce qu'un fork et une Pull Request ?

    • Fork : Copie d'un dépôt sur votre compte
    • Pull Request : Proposition de changements au dépôt original
  4. Pourquoi votre push est-il rejeté ?

    • Quelqu'un a pushé avant vous
    • Solution : git pull puis git push

✅ Vous maîtrisez ce module si :

  • Vous poussez et tirez du code vers GitHub/GitLab
  • Vous collaborez avec d'autres développeurs
  • Vous comprenez le workflow fork/PR
  • Vous gérez les conflits lors des pull

Module 6 : Fonctions avancées

Questions d'auto-évaluation :

  1. À quoi sert git stash ?

    • Mettre de côté temporairement du travail en cours
    • Utile pour changer de branche rapidement
  2. Comment récupérer un commit "perdu" ?

    git reflog
    git reset --hard [commit-hash]
  3. À quoi sert git cherry-pick ?

    • Appliquer un commit spécifique d'une branche à une autre
  4. Comment nettoyer l'historique avant de partager ?

    git rebase -i HEAD~n
    # Utiliser squash, fixup, reword, etc.
  5. À quoi servent les tags ?

    • Marquer des versions importantes (v1.0.0, v2.0.0)
    • Faciliter les releases

✅ Vous maîtrisez ce module si :

  • Vous utilisez stash pour jongler entre tâches
  • Vous savez récupérer du travail avec reflog
  • Vous nettoyez l'historique avec rebase interactif
  • Vous créez des tags pour vos versions

Module 7 : Bonnes pratiques

Questions d'auto-évaluation :

  1. Qu'est-ce qu'un bon message de commit ?

    Type: Résumé court (50 caractères max)
    
    Description détaillée si nécessaire.
    Pourquoi ce changement est-il nécessaire ?
    
  2. Qu'est-ce qu'un commit atomique ?

    • Un commit = une seule chose logique
    • Facilite la compréhension et le revert
  3. Quel workflow choisir pour votre équipe ?

    • Git Flow : Pour projets avec releases planifiées
    • GitHub Flow : Pour déploiement continu
    • Trunk-Based : Pour équipes très matures
  4. Que doit contenir un .gitignore ?

    node_modules/
    .env
    *.log
    .DS_Store
    

✅ Vous maîtrisez ce module si :

  • Vous écrivez des messages de commit clairs
  • Vos commits sont bien organisés
  • Vous suivez un workflow cohérent en équipe
  • Vous configurez correctement .gitignore

Module 8 : Dépannage

Questions d'auto-évaluation :

  1. Qu'est-ce qu'un detached HEAD et comment le résoudre ?

    • État où HEAD pointe vers un commit, pas une branche
    • Solution : git switch [branche] ou créer une branche
  2. Comment annuler un merge en cours qui tourne mal ?

    git merge --abort
  3. Comment annuler un rebase en cours ?

    git rebase --abort
  4. Que faire si vous avez pushé le mauvais commit ?

    git revert [commit-hash]
    git push

✅ Vous maîtrisez ce module si :

  • Les erreurs ne vous paniquent plus
  • Vous savez annuler vos actions
  • Vous utilisez les commandes de secours
  • Vous récupérez du travail perdu

Module 9 : Outils

Questions d'auto-évaluation :

  1. Connaissez-vous au moins un outil graphique Git ?

    • Sourcetree, GitKraken, Fork, ou l'intégration de votre IDE
  2. Pouvez-vous utiliser Git dans votre éditeur préféré ?

    • VSCode, IntelliJ, PyCharm ont tous Git intégré
  3. Qu'est-ce que l'intégration continue (CI) ?

    • Tests automatiques à chaque commit/PR
    • Détecte les bugs rapidement

✅ Vous maîtrisez ce module si :

  • Vous connaissez des outils qui facilitent votre travail
  • Vous êtes productif avec Git
  • Vous comprenez l'importance de l'automatisation

Module 10 : Cas pratiques

Questions d'auto-évaluation :

  1. Pouvez-vous contribuer à un projet open source ?

    • Fork → Clone → Branche → Commit → Push → PR
  2. Savez-vous mettre en place Git Flow pour une équipe ?

    • Branches main, develop, feature/, release/, hotfix/*
  3. Pouvez-vous créer un projet personnel avec Git de A à Z ?

    • Init → Branches → Commits → Tags → Push → Deploy
  4. Savez-vous résoudre un conflit de merge complexe ?

    • Identifier les fichiers en conflit
    • Résoudre un par un
    • Tester le résultat
    • Commit

✅ Vous maîtrisez ce module si :

  • Vous appliquez Git dans des projets réels
  • Vous gérez des situations complexes
  • Vous travaillez efficacement en équipe
  • Vous contribuez à l'open source

Test de compétences pratiques

Pour valider complètement vos compétences, essayez ces défis pratiques :

Défi 1 : Projet de zéro (30 minutes)

Objectif : Créer un projet web simple avec Git

  1. Initialisez un dépôt Git
  2. Créez une branche develop
  3. Créez 3 features sur des branches séparées
  4. Mergez-les dans develop
  5. Créez une release et taggez-la v1.0.0
  6. Poussez sur GitHub
  7. Déployez avec GitHub Pages

✅ Réussi si :

  • Historique propre et lisible
  • Branches bien organisées
  • Messages de commit clairs
  • Site déployé en ligne

Défi 2 : Contribution open source (1-2 heures)

Objectif : Faire votre première Pull Request

  1. Trouvez un projet avec le label "good first issue"
  2. Forkez le projet
  3. Clonez votre fork
  4. Créez une branche
  5. Faites votre contribution
  6. Poussez et créez une PR
  7. Répondez aux commentaires de revue

✅ Réussi si :

  • PR créée et bien documentée
  • Contribution acceptée (ou feedback constructif reçu)

Défi 3 : Résolution de conflits (30 minutes)

Objectif : Gérer une situation de conflit

  1. Créez 2 branches qui modifient le même fichier
  2. Mergez-les (conflit !)
  3. Résolvez le conflit
  4. Testez que tout fonctionne
  5. Finalisez le merge

✅ Réussi si :

  • Conflit résolu sans perte de code
  • Historique cohérent
  • Pas d'erreurs dans le code final

Défi 4 : Récupération d'urgence (15 minutes)

Objectif : Récupérer du travail après une erreur

  1. Faites plusieurs commits
  2. Faites un git reset --hard trop loin
  3. Récupérez vos commits avec reflog
  4. Restaurez tout votre travail

✅ Réussi si :

  • Tous les commits sont récupérés
  • Vous comprenez comment éviter ça à l'avenir

Niveaux de maîtrise

Niveau 1 : Débutant 🌱

Compétences :

  • Créer un dépôt
  • Faire des commits
  • Voir l'historique
  • Pousser sur GitHub

Pour progresser :

  • Pratiquez quotidiennement
  • Faites tous vos projets avec Git
  • Lisez la documentation

Niveau 2 : Intermédiaire 🌿

Compétences :

  • Utiliser des branches efficacement
  • Résoudre des conflits simples
  • Collaborer avec d'autres
  • Utiliser fetch, pull, push correctement

Pour progresser :

  • Contribuez à des projets open source
  • Travaillez en équipe
  • Apprenez les workflows (Git Flow)

Niveau 3 : Avancé 🌳

Compétences :

  • Utiliser rebase interactif
  • Récupérer du travail avec reflog
  • Gérer des situations complexes
  • Nettoyer et organiser l'historique
  • Utiliser cherry-pick, bisect, stash

Pour progresser :

  • Enseignez Git à d'autres
  • Mettez en place des processus Git pour des équipes
  • Personnalisez votre workflow

Niveau 4 : Expert 🌟

Compétences :

  • Comprendre les internals de Git
  • Résoudre n'importe quelle situation
  • Créer des workflows personnalisés
  • Automatiser avec hooks
  • Optimiser les performances Git

Pour maintenir ce niveau :

  • Restez à jour avec Git
  • Partagez vos connaissances
  • Contribuez à des projets complexes

Auto-évaluation finale

Cochez ce que vous savez faire sans aide :

Commandes de base

  • git init
  • git add
  • git commit
  • git status
  • git log
  • git diff

Branches

  • git branch
  • git checkout / git switch
  • git merge
  • Résoudre un conflit de merge
  • git rebase
  • Comprendre quand utiliser merge vs rebase

Dépôts distants

  • git clone
  • git remote
  • git fetch
  • git pull
  • git push
  • Créer une Pull Request

Corrections

  • git commit --amend
  • git restore
  • git reset (comprendre --soft, --mixed, --hard)
  • git revert

Fonctions avancées

  • git stash
  • git cherry-pick
  • git rebase -i
  • git reflog
  • git tag

Pratiques

  • Écrire de bons messages de commit
  • Faire des commits atomiques
  • Utiliser .gitignore
  • Suivre un workflow d'équipe
  • Faire des revues de code

Score de certification

Comptez vos ✅ :

40-45 ✅ : Expert Git 🏆

Félicitations ! Vous maîtrisez Git de manière exceptionnelle. Vous êtes prêt à travailler sur n'importe quel projet professionnel et à encadrer d'autres développeurs.

Recommandations :

  • Partagez vos connaissances (blog, YouTube, mentorat)
  • Contribuez à des projets open source complexes
  • Explorez les internals de Git
  • Créez vos propres workflows et outils

30-39 ✅ : Avancé 🌟

Très bien ! Vous avez une excellente maîtrise de Git. Vous êtes autonome et pouvez gérer des situations complexes.

Recommandations :

  • Approfondir rebase interactif et reflog
  • Pratiquer sur des projets complexes
  • Enseigner Git à des débutants
  • Explorer les hooks et l'automatisation

20-29 ✅ : Intermédiaire ⭐

Bon niveau ! Vous pouvez travailler efficacement avec Git au quotidien.

Recommandations :

  • Pratiquer la résolution de conflits
  • Contribuer à des projets open source
  • Approfondir les workflows d'équipe
  • Maîtriser rebase et cherry-pick

10-19 ✅ : Débutant 🌱

Vous avez les bases ! Continuez à pratiquer régulièrement.

Recommandations :

  • Utiliser Git tous les jours
  • Refaire les modules 1-5 en pratiquant
  • Créer des projets personnels avec Git
  • Rejoindre une communauté Git

0-9 ✅ : Apprentissage 🌾

Vous débutez votre parcours Git. C'est normal !

Recommandations :

  • Reprendre la formation depuis le début
  • Pratiquer chaque commande une par une
  • Ne pas se décourager : Git est complexe au début
  • Poser des questions dans des communautés

Ressources pour continuer

Documentation officielle

Tutoriels interactifs

Communautés

  • Stack Overflow : Tag [git]
  • Reddit : r/git
  • Discord : Serveurs de développeurs
  • GitHub Discussions : Sur les projets

Blogs et vidéos

  • Atlassian Git Tutorial : Excellent blog
  • freeCodeCamp : Tutoriels vidéo
  • Grafikart : Tutoriels en français

Livres recommandés

  • Pro Git (gratuit en ligne)
  • Git Pocket Guide de Richard E. Silverman
  • Git for Teams de Emma Jane Hogbin Westby

Plan de progression sur 6 mois

Mois 1-2 : Fondations

  • Utiliser Git quotidiennement sur tous vos projets
  • Faire au moins 1 commit par jour
  • Pratiquer les commandes de base jusqu'à ce qu'elles soient naturelles

Mois 3-4 : Collaboration

  • Contribuer à 1-3 projets open source
  • Travailler sur un projet en équipe
  • Pratiquer la résolution de conflits

Mois 5-6 : Maîtrise

  • Utiliser des fonctions avancées (rebase -i, reflog, cherry-pick)
  • Mettre en place Git Flow sur un projet
  • Enseigner Git à quelqu'un

Certificat de compétence (personnel)

═══════════════════════════════════════════════
        CERTIFICAT DE COMPÉTENCE GIT
═══════════════════════════════════════════════

Je certifie avoir complété la formation Git  
et validé les compétences suivantes :

✓ Concepts fondamentaux de Git
✓ Gestion des branches et résolution de conflits
✓ Collaboration avec dépôts distants
✓ Fonctions avancées et récupération
✓ Bonnes pratiques et workflows
✓ Cas pratiques et situations complexes

Niveau atteint : [Votre niveau]  
Date : [Date de validation]

Signé : [Votre nom]
═══════════════════════════════════════════════

Personnalisez et affichez ce certificat :

  • Imprimez-le et affichez-le
  • Ajoutez-le à votre portfolio
  • Mentionnez-le sur LinkedIn
  • Partagez-le avec votre équipe

Prochaines étapes

Cette semaine

  • Créer un projet personnel avec Git
  • Faire au moins 5 commits bien structurés
  • Pousser le projet sur GitHub

Ce mois-ci

  • Contribuer à un projet open source
  • Résoudre un conflit de merge en conditions réelles
  • Enseigner une commande Git à quelqu'un

Ces 3 mois

  • Maîtriser un workflow (Git Flow ou GitHub Flow)
  • Automatiser quelque chose avec les hooks Git
  • Participer à des revues de code

Cette année

  • Devenir l'expert Git de votre équipe
  • Créer votre propre workflow personnalisé
  • Contribuer régulièrement à l'open source

Citations motivantes

"Git gets easier once you get the basic idea that branches are homeomorphic endofunctors mapping submanifolds of a Hilbert space."

— Isaac Wolkerstorfer (avec humour)

Traduction en clair : Git semble complexe, mais une fois les concepts de base compris, tout devient plus simple !

"The best way to learn Git is to use it every single day."

— Sage conseil de développeur

"Don't be afraid to commit. The worst thing you can do in Git is nothing."

— Philosophie Git


Message final

🎉 Félicitations d'avoir complété cette formation !

Vous avez parcouru un long chemin :

  • ✅ 10 modules complets
  • ✅ Des dizaines de commandes
  • ✅ Des concepts parfois complexes
  • ✅ Des situations pratiques
  • ✅ Des simulations réalistes

Vous êtes maintenant équipé pour :

  • Gérer vos projets personnels professionnellement
  • Collaborer efficacement en équipe
  • Contribuer à des projets open source
  • Résoudre des situations complexes
  • Enseigner Git à d'autres

Rappelez-vous :

  • Git est un outil, pas une fin en soi
  • La pratique régulière est la clé
  • Les erreurs font partie de l'apprentissage
  • La communauté est là pour vous aider
  • Chaque expert a commencé comme vous

Le plus important : Vous n'avez pas besoin de tout maîtriser immédiatement. Même les développeurs expérimentés consultent la documentation régulièrement. L'important est de comprendre les concepts et de savoir où trouver l'information quand vous en avez besoin.


Git est votre superpouvoir 🚀

Maintenant que vous maîtrisez Git, vous avez un superpouvoir que beaucoup de développeurs n'ont pas. Utilisez-le bien :

  • 💾 Sauvegardez votre travail
  • 🌿 Expérimentez sans crainte
  • 🤝 Collaborez efficacement
  • 📚 Apprenez des autres
  • 🎁 Contribuez à la communauté

Un dernier conseil : Continuez à apprendre, continuez à pratiquer, et n'oubliez jamais que même les experts font des erreurs avec Git. La différence est qu'ils savent comment les corriger !

Bonne chance dans vos futurs projets, et bienvenue dans la communauté Git ! 🎊


Vous êtes prêt. Maintenant, allez créer quelque chose d'incroyable ! 💻✨

⏭️ Scénarios courants et résolutions