TP GUIDÉ – GIT & GITHUB AVEC
RÉPARTITION PAR ÉTUDIANT
Objectif
À la fin de ce TP, chaque étudiant doit être capable de :
• Forker un projet
• Cloner son fork
• Créer une branche
• Développer une fonctionnalité
• Faire des commits
• Synchroniser avec upstream
• Créer une Pull Request
• Fusionner du code
CONTEXTE
Projet : Gestion des étudiants
Fonctionnalités :
1. Ajouter étudiant
2. Modifier étudiant
3. Supprimer étudiant
4. Afficher étudiants
5. Rechercher étudiant
6. Menu interactif
RÉPARTITION DES TÂCHES
Étudiant Tâche
Étudiant 1 Classe Student
Étudiant 2 Ajouter étudiant
Étudiant 3 Modifier étudiant
Étudiant 4 Supprimer étudiant
Étudiant 5 Afficher + Rechercher
Étudiant 6 Menu + Main
🔹 PARTIE 1 : CHEF DE PROJET
(ÉTUDIANT 1)
COURS : Initialisation et envoi d’un projet
sur GitHub
Objectif du cours
À la fin, tu dois savoir :
• créer un projet Git local
• connecter un projet à GitHub
• envoyer un projet sur GitHub
• comprendre la différence entre les deux cas
CAS 1 : Créer un nouveau projet Git +
l’envoyer sur GitHub
Ici, tu n’as encore rien (nouveau projet)
Étape 1 : Créer un fichier README
Explication :
• crée un fichier [Link]
• il sert à décrire ton projet
Étape 2 : Initialiser Git
git init
Explication :
• transforme ton dossier en projet Git
• Git commence à suivre les changements
Étape 3 : Ajouter les fichiers
git add [Link]
Explication :
• prépare le fichier pour la sauvegarde
• on dit : “ce fichier est prêt”
Étape 4 : Sauvegarder (commit)
git commit- m "Tu mets ici le message de ton commit"
Explication :
• crée une version du projet
• comme une sauvegarde dans un jeu vidéo
Étape 5 : Renommer la branche principale
git branch -M main
Explication :
• renomme la branche principale en main
• standard GitHub aujourd’hui
Étape 6 : Lier GitHub
git remote add origin url_du_repo
Explication :
• connecte ton projet local à GitHub
• origin = nom du serveur distant
Étapes pour obtenir le lien(url_du_repo)
◦ Aller sur GitHub( [Link] )
◦ Créer un nouveau repository
Tu cliques sur :
New repository
Puis tu remplis :
• Repository name : nom_du_repo
• Public / Private
• (optionnel) README (tu peux décocher si tu travailles en local)
• Tu cliques sur :Create repository
Après création, GitHub affiche automatiquement :
git remote add origin https ou SSH
Sur la page du repo, tu peux aussi le retrouver ici :
🔹 Bouton vert “Code”
Tu cliques dessus et tu vois :
• HTTPS link
• SSH link
Exemple :
[Link]
Étape 7 : Envoyer sur GitHub
git push -u origin main
Explication :
• envoie ton projet vers GitHub
• -u = mémorise la connexion
CAS 2 : Projet déjà existant (déjà Git)
Ici, tu as déjà un projet Git local
Étape 1 : Connecter GitHub
git remote add origin url_du_repo
Explication :
• ajoute le lien GitHub à ton projet
Étape 2 : Vérifier la branche
git branch -M main
Explication :
• assure que la branche principale est main
Étape 3 : Envoyer le projet
git push -u origin main
Explication :
• envoie tout le projet sur GitHub
COMPARAISON DES 2 CAS
Cas Situation Commandes principales
Nouveau projet Rien n’existe init → add → commit → remote → push
Projet existant Git déjà utilisé remote → branch → push
Pratique :
Étape 1 : Créer le repo sur GitHub
• Nom : gestion-etudiant
Étape 2 : Initialiser projet sur ton pc en local
Ajouter le code via Git en ligne de commande (méthode la plus utilisée). C’est la méthode
professionnelle et la plus importante à apprendre.
Étapes :
1. Initialiser Git dans ton projet
git init
2. Ajouter les fichiers : Créer [Link] et collé ce code :
public class Student {
private int id;
private String nom;
private double note;
public Student(int id, String nom, double note) {
[Link] = id;
[Link] = nom;
[Link] = note;
}
}
3. Faire un commit
git add .
git commit -m "first commit"
4. Lier le repository GitHub
git remote add origin url_de_ton_repo
5. Envoyer le code sur GitHub
git push -u origin main
ou parfois :
git push -u origin master
Étape 3 : Commit + push
git add .
git commit -m "feat: creation classe Student"
git remote add origin <URL>
git push -u origin main
🔹 PARTIE 2 : TOUS LES AUTRES
ÉTUDIANTS (2 à 6)
COURS : FORK sur GitHub (très important en collaboration)
🔹 1. C’EST QUOI UN FORK ?
Un fork, c’est :
une copie d’un projet GitHub dans TON propre compte GitHub
Image mentale
• Projet original = projet d’un autre développeur
• Fork = tu fais une copie dans ton GitHub
• Tu peux modifier sans toucher l’original
Exemple réel
Tu vois ce projet :
• projet API Spring Boot d’un professeur
• projet open-source sur GitHub
Tu veux travailler dessus → tu fais un FORK
2. OÙ UTILISE-T-ON LE FORK ?
Fork est utilisé quand :
1. Open Source
• contribuer à un projet public
2. Travail en équipe (examen / TP)
• étudiant 1 crée projet
• étudiants 2 et 3 fork le projet
3. Apprentissage
• tester un projet sans casser l’original
3. COMMENT FAIRE UN FORK ?
Étape 1 : Aller sur GitHub
Ouvre le projet original
Étape 2 : Cliquer sur FORK
Bouton en haut à droite :
Fork
Étape 3 : Choisir ton compte
GitHub crée une copie :
ton_compte / nom-du-projet
Étape 4 : Tu as ton propre repo
Maintenant tu as :
• une copie complète
• ton propre lien GitHub
Exemple :
[Link]
4. CLONE DU FORK (très important)
Après fork, tu fais :
git clone [Link]
Cela copie le projet sur ton PC
5. TRAVAIL SUR LE PROJET FORKÉ
Tu peux maintenant :
git add .
git commit -m "modification"
git push origin main
Ici tu modifies TON fork, pas l’original
6. PULL REQUEST (PR) — étape importante
Après modification, tu peux proposer tes changements au projet original
C’est quoi ?
Une Pull Request = demande d’ajout de ton code dans le projet principal
Exemple réel
• projet original = professeur
• toi = étudiant
• tu modifies le fork
• tu proposes tes changements
Étapes Pull Request :
1. tu pushes ton fork
2. tu vas sur GitHub
3. bouton “Pull Request”
4. tu expliques tes modifications
5. le propriétaire accepte ou refuse
7. NOTION IMPORTANTE : UPSTREAM
upstream = lien vers le projet original
git remote add upstream [Link]
Pourquoi ?
Pour récupérer les mises à jour du projet original
Mise à jour du fork
git pull upstream main
8. FORK VS CLONE
Fork Clone
Copie sur GitHub Copie sur ton PC
Permet PR Pas de PR direct
Travail collaboratif Travail local
9. RÉSUMÉ SIMPLE
🔹 Fork :
copier un projet GitHub dans ton compte
🔹 Clone :
copier sur ton ordinateur
🔹 Pull Request :
proposer tes modifications
🔹 Upstream :
suivre les mises à jour du projet original
10. CAS pratique
Scénario typique :
1. Étudiant 1 crée projet
2. Étudiant 2 fork
3. Étudiant 2 clone fork
4. Étudiant 2 modifie
5. Étudiant 2 push
6. Étudiant 2 fait Pull Request
7. Étudiant 1 accepte
Étape 4 : Fork
Sur GitHub → bouton Fork
Étape 5 : Clone
git clone <URL_DU_FORK>
Étape 6 : Ajouter upstream
git remote add upstream <URL_REPO_ORIGINAL>
🔹 PARTIE 3 : TRAVAIL PAR ÉTUDIANT
ÉTUDIANT 2 → Ajouter étudiant
Branche
git checkout -b ajout-etudiant
Code
public void ajouter(Student s) {
[Link](s);
}
Commit + push
git add .
git commit -m "feat: ajout etudiant"
git push origin feature/ajout-etudiant
ÉTUDIANT 3 → Modifier étudiant
git checkout -b feature/modifier-etudiant
public void modifier(int id, String nom) {
for(Student s : liste) {
if([Link]() == id) {
[Link](nom);
}
}
}
git add .
git commit -m "feat: modifier etudiant"
git push origin feature/modifier-etudiant
ÉTUDIANT 4 → Supprimer étudiant
git checkout -b feature/supprimer-etudiant
public void supprimer(int id) {
[Link](s -> [Link]() == id);
}
git add .
git commit -m "feat: supprimer etudiant"
git push origin feature/supprimer-etudiant
ÉTUDIANT 5 → Afficher + Rechercher
git checkout -b feature/afficher-rechercher
public void afficher() {
for(Student s : liste) {
[Link]([Link]());
}
}
public Student rechercher(int id) {
for(Student s : liste) {
if([Link]() == id) return s;
}
return null;
}
git add .
git commit -m "feat: afficher et rechercher"
git push origin feature/afficher-rechercher
ÉTUDIANT 6 → Menu + Main
git checkout -b feature/menu
while(true) {
[Link]("1. Ajouter");
[Link]("2. Modifier");
[Link]("3. Supprimer");
[Link]("4. Afficher");
[Link]("5. Rechercher");
[Link]("6. Quitter");
}
git add .
git commit -m "feat: menu principal"
git push origin feature/menu
🔹 PARTIE 4 : PULL REQUEST
Chaque étudiant :
• Va sur GitHub
• Clique sur Pull Request
• Propose son code au repo principal
🔹 PARTIE 5 : MERGE (ROTATION)
Chaque étudiant doit AU MOINS UNE FOIS :
• Valider une Pull Request
• Faire un merge
🔹 PARTIE 6 : SYNCHRONISATION
git pull upstream main
🔹 PARTIE 7 : CONFLIT (OBLIGATOIRE)
Deux étudiants modifient la même ligne
Résolution :
git add .
git commit -m "fix: résolution conflit"
RÈGLES
Chaque étudiant doit :
• fork
• clone
• branch
• commit
• push
• pull
• merge
Minimum : 3 commits par étudiant
ÉVALUATION
Individuel
• participation Git
• commits
• branche
Groupe
• application fonctionnelle
• intégration réussie
PRÉPARATION EXAMEN
À l’examen :
• même structure
• mais sans guide