0% ont trouvé ce document utile (0 vote)
3 vues13 pages

TP Github

Ce document présente un TP guidé sur l'utilisation de Git et GitHub, où chaque étudiant doit apprendre à forker, cloner, créer des branches, développer des fonctionnalités, faire des commits, synchroniser avec upstream, créer des Pull Requests et fusionner du code. Le projet porte sur la gestion des étudiants avec des fonctionnalités spécifiques attribuées à chaque étudiant. Le TP inclut également des instructions détaillées sur la création et la gestion de projets Git, ainsi que des pratiques de collaboration via des forks et des Pull Requests.

Transféré par

jacqueskazim
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues13 pages

TP Github

Ce document présente un TP guidé sur l'utilisation de Git et GitHub, où chaque étudiant doit apprendre à forker, cloner, créer des branches, développer des fonctionnalités, faire des commits, synchroniser avec upstream, créer des Pull Requests et fusionner du code. Le projet porte sur la gestion des étudiants avec des fonctionnalités spécifiques attribuées à chaque étudiant. Le TP inclut également des instructions détaillées sur la création et la gestion de projets Git, ainsi que des pratiques de collaboration via des forks et des Pull Requests.

Transféré par

jacqueskazim
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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

Vous aimerez peut-être aussi