Ce guide est destiné aux formateurs qui dispensent le cours "Git et GitHub pour Ingénieurs en Électronique". Il contient des conseils pédagogiques, des timings détaillés, et des solutions aux problèmes courants.
À la fin de la formation de 4 heures, les étudiants doivent être capables de :
- Comprendre les concepts fondamentaux du contrôle de version
- Utiliser Git pour gérer leurs projets individuels
- Collaborer efficacement avec GitHub
- Appliquer les bonnes pratiques de gestion de code
- Gérer des projets de firmware et de documentation technique
- Objectif : Comprendre pourquoi et comment utiliser Git
- Format : 70% théorie, 30% pratique
- Exercices : Installation et configuration
- Objectif : Maîtriser les commandes de base
- Format : 40% théorie, 60% pratique
- Exercices : Création de dépôt, branches, résolution de conflits
- Objectif : Travailler en équipe avec GitHub
- Format : 50% théorie, 50% pratique
- Exercices : Dépôt GitHub, Pull Requests, collaboration
- Objectif : Appliquer les bonnes pratiques professionnelles
- Format : 30% théorie, 70% pratique
- Exercices : Projet complet avec CI/CD
| Temps | Activité | Durée | Notes |
|---|---|---|---|
| 0:00 | Accueil et présentations | 5 min | Tour de table |
| 0:05 | Introduction : Pourquoi Git ? | 10 min | Slides 1-8 |
| 0:15 | Concepts fondamentaux | 15 min | Slides 9-17 |
| 0:30 | Exercice 1 : Installation | 10 min | Assistance individuelle |
| 0:40 | Interfaces et aide | 10 min | Slides 18-20 |
| 0:50 | Vocabulaire et architecture | 10 min | Slides 21-26 |
| 1:00 | Pause | 5 min |
| Temps | Activité | Durée | Notes |
|---|---|---|---|
| 1:05 | Commandes de base | 15 min | Slides 1-10, démo live |
| 1:20 | Exercice 2 : Premier dépôt | 10 min | |
| 1:30 | Branches et fusion | 15 min | Slides 11-20, démo live |
| 1:45 | Exercice 3 : Branches | 15 min | |
| 2:00 | Commandes avancées | 10 min | Slides 21-28 |
| 2:10 | Pause | 10 min |
| Temps | Activité | Durée | Notes |
|---|---|---|---|
| 2:20 | GitHub basics | 15 min | Slides 1-11, démo live |
| 2:35 | Exercice 5 : Premier dépôt GitHub | 15 min | |
| 2:50 | Pull Requests et collaboration | 15 min | Slides 12-16 |
| 3:05 | Exercice 6 : Collaboration | 20 min | En binômes |
| 3:25 | Issues et gestion de projet | 10 min | Slides 15-23 |
| 3:35 | Pause | 10 min |
| Temps | Activité | Durée | Notes |
|---|---|---|---|
| 3:45 | Workflows et bonnes pratiques | 10 min | Slides 1-8 |
| 3:55 | Documentation et CI/CD | 15 min | Slides 9-16 |
| 4:10 | Exercice 7 : Projet avec CI/CD | 20 min | |
| 4:30 | Troubleshooting et outils | 10 min | Slides 17-24 |
| 4:40 | Récapitulatif et questions | 10 min | |
| 4:50 | Exercice 8 (optionnel) : Projet final | 25 min | Ou à faire à la maison |
| 5:15 | Conclusion et évaluation | 5 min |
Pour le formateur :
- Ordinateur avec Git installé
- Projecteur ou écran partagé
- Compte GitHub
- Exemples de projets Arduino préparés
- Accès Internet stable
Pour les étudiants :
- Ordinateurs avec droits administrateur
- Accès Internet
- Éditeur de texte (VS Code recommandé)
- Comptes GitHub créés (idéalement avant le cours)
1 semaine avant :
- Envoyer email avec prérequis
- Demander création comptes GitHub
- Partager liens d'installation Git
1 jour avant :
- Tester le projecteur/partage d'écran
- Vérifier la connexion Internet
- Préparer les exemples de code
- Imprimer l'aide-mémoire (optionnel)
Le jour J :
- Arriver 15 min en avance
- Tester tout le matériel
- Préparer les slides
- Avoir un plan B (sans Internet)
Principe 80/20 :
- 80% des besoins couverts par 20% des commandes
- Se concentrer sur l'essentiel
- Mentionner les fonctionnalités avancées sans les détailler
Apprentissage par la pratique :
- Démonstrations en direct
- Exercices immédiatement après la théorie
- Erreurs volontaires pour montrer le dépannage
Adaptation au public :
- Exemples liés à l'électronique (Arduino, ESP32, etc.)
- Vocabulaire technique approprié
- Cas d'usage concrets
Niveaux hétérogènes :
- Identifier rapidement les niveaux
- Exercices bonus pour les avancés
- Assistance individuelle pour les débutants
- Encourager l'entraide
Participation :
- Poser des questions régulièrement
- Encourager les questions
- Valoriser les contributions
- Créer un environnement bienveillant
Timing :
- Respecter les pauses
- Être flexible sur les exercices
- Avoir des exercices de secours
- Pouvoir accélérer ou ralentir
Objectif : Montrer le workflow complet en 5 minutes
# 1. Créer un projet
mkdir demo-led
cd demo-led
git init
# 2. Créer un fichier
echo "# Demo LED" > README.md
# 3. Voir le statut
git status
# 4. Ajouter et commiter
git add README.md
git commit -m "Initial commit"
# 5. Voir l'historique
git logPoints à souligner :
- Simplicité du workflow
- Importance de
git status - Messages de commit descriptifs
Objectif : Montrer la puissance des branches
# 1. Créer une branche
git checkout -b feature-test
# 2. Faire des modifications
echo "Test" > test.txt
git add test.txt
git commit -m "Ajout test"
# 3. Retour sur main
git checkout main
# 4. Montrer que test.txt n'existe pas sur main
ls
# 5. Fusionner
git merge feature-test
# 6. Montrer que test.txt existe maintenant
lsPoints à souligner :
- Isolation des modifications
- Facilité de basculement
- Fusion simple
Objectif : Montrer le cycle complet avec GitHub
# 1. Créer un dépôt sur GitHub (montrer l'interface)
# 2. Cloner
git clone git@github.com:username/demo.git
cd demo
# 3. Faire des modifications
echo "Modification" >> README.md
git commit -am "Update README"
# 4. Pousser
git push origin main
# 5. Montrer sur GitHub (rafraîchir la page)Points à souligner :
- Synchronisation automatique
- Historique visible sur GitHub
- Collaboration facilitée
Symptôme : git: command not found
Solutions :
- Windows : Installer Git for Windows
- macOS :
xcode-select --installou Homebrew - Linux :
sudo apt-get install git
Prévention : Email de prérequis 1 semaine avant
Symptôme : Permission denied (publickey)
Solutions :
- Vérifier la clé :
ssh -T git@github.com - Générer une nouvelle clé si nécessaire
- Alternative : utiliser HTTPS temporairement
Prévention : Prévoir du temps pour la configuration SSH
Symptôme : CONFLICT (content): Merge conflict
Solutions :
- Montrer les marqueurs de conflit
- Expliquer comment choisir
- Démontrer la résolution
- Utiliser un outil visuel (VS Code)
Prévention : Exercice dédié à la résolution de conflits
Symptôme : "J'ai commité sur main au lieu de ma branche"
Solutions :
# Créer une branche à partir du commit actuel
git branch nouvelle-branche
# Revenir en arrière sur main
git reset --hard HEAD~1
# Aller sur la nouvelle branche
git checkout nouvelle-brancheSymptôme : "J'ai commité mon mot de passe"
Solutions :
# Supprimer le fichier de l'historique
git filter-branch --force --index-filter \
"git rm --cached --ignore-unmatch secrets.h" \
--prune-empty --tag-name-filter cat -- --all
# Forcer le push
git push origin --force --allPrévention : Insister sur .gitignore dès le début
Questions théoriques :
- Quelle est la différence entre Git et GitHub ?
- À quoi sert une branche ?
- Que fait la commande
git pull? - Qu'est-ce qu'une Pull Request ?
- Pourquoi utiliser .gitignore ?
Questions pratiques :
- Comment créer un nouveau dépôt ?
- Comment voir l'historique des commits ?
- Comment annuler des modifications non commitées ?
- Comment créer une branche ?
- Comment résoudre un conflit ?
Critères d'évaluation :
- Dépôt Git initialisé correctement
- Historique de commits propre et descriptif
- Utilisation de branches
- .gitignore approprié
- README.md complet
- Code fonctionnel
- Tests présents
- Documentation technique
Barème suggéré :
- Structure du projet : 20%
- Qualité des commits : 20%
- Utilisation des branches : 15%
- Documentation : 15%
- Code fonctionnel : 20%
- Bonnes pratiques : 10%
Ajustements :
- Plus de temps sur les concepts de base
- Exercices plus guidés
- Moins de commandes avancées
- Plus de démonstrations
Durée recommandée : 5-6 heures
Ajustements :
- Moins de temps sur les bases
- Plus de workflows avancés
- Git rebase, cherry-pick, etc.
- Hooks et automatisation
Durée recommandée : 3-4 heures
Adaptations :
- Utiliser le partage d'écran
- Breakout rooms pour exercices en binôme
- Chat pour questions
- Enregistrer la session
- Pauses plus fréquentes (toutes les 45 min)
Livres :
- "Pro Git" par Scott Chacon
- "Git Pocket Guide" par Richard E. Silverman
Sites web :
Vidéos :
- Git and GitHub for Beginners (freeCodeCamp)
- Git Tutorial for Beginners (Corey Schafer)
À distribuer :
- Aide-mémoire Git (inclus dans le cours)
- Liens vers tutoriels interactifs
- Liste de projets open source pour pratiquer
- Invitation au groupe Discord/Slack
À la fin du cours :
- Questionnaire de satisfaction
- Points forts / points à améliorer
- Suggestions de contenu
- Évaluation du formateur
Questions suggérées :
- Le rythme était-il adapté ? (trop lent / adapté / trop rapide)
- Les exercices étaient-ils pertinents ?
- Qu'avez-vous le plus apprécié ?
- Qu'auriez-vous aimé voir en plus ?
- Recommanderiez-vous ce cours ?
1 semaine après :
- Email de suivi
- Ressources complémentaires
- Invitation à une session Q&A
1 mois après :
- Session de questions-réponses
- Partage de projets réalisés
- Feedback sur l'utilisation réelle
- Matériel vérifié
- Exemples préparés
- Comptes de test créés
- Slides à jour
- Exercices testés
- Plan B préparé
- Accueil chaleureux
- Objectifs clarifiés
- Démonstrations claires
- Questions encouragées
- Timing respecté
- Assistance individuelle
- Feedback collecté
- Ressources partagées
- Certificats distribués
- Suivi planifié
- Notes pour amélioration
Pour obtenir le certificat :
- Présence à 100% du cours
- Participation aux exercices
- Projet final validé (optionnel)
- Quiz final > 70% (optionnel)
CERTIFICAT DE FORMATION
Ceci certifie que [Nom de l'étudiant]
a suivi avec succès la formation
"Git et GitHub pour Ingénieurs en Électronique"
Durée : 4 heures
Date : [Date]
Compétences acquises :
- Gestion de versions avec Git
- Collaboration avec GitHub
- Bonnes pratiques de développement
- CI/CD pour projets embarqués
Formateur : [Nom]
Signature : [Signature]
Pour les formateurs :
- Email : support-formateurs@example.com
- Forum : forum.example.com/formateurs
- Slack : #formateurs-git
Ressources :
- Dépôt GitHub du cours
- Slides modifiables
- Exercices personnalisables
- Communauté de formateurs
Bonne formation ! 🚀
Ce guide est un document vivant. N'hésitez pas à le faire évoluer en fonction de votre expérience.