Apprendre à collaborer efficacement sur GitHub en petit groupe (3 étudiants), en utilisant :
- des branches
- des pull requests
- la résolution de conflits
- le merge collaboratif
- Les commits doivent normalement suivre la norme conventionnal commits, mais comme les branches que l'on vous demande sont toutes sur les mêmes fonctionalités, seulement pour ces exercices, il faut suivre la norme imposée.
- Pour plus d'informations sur le workflow Git, pensez à regarder ici
Objectif : Créer une branche fonctionnelle, y travailler, faire une pull request, la faire relire et merger.
- Réfléchissez à une petite fonctionnalité ou modification (par exemple : ajout d’une ligne dans un fichier
participants.txt, création d’un fichier de présentation, etc.) - Créez une branche nommée
initiales/nom-de-feature(ex:AZ/ajout-participant) - Effectuez la modification
- Faites un commit et poussez votre branche
- Créez une Pull Request (PR) vers
main - Demandez une relecture à un membre du groupe avant de merger
Objectif : Créer un conflit sur la même ligne d’un fichier et le résoudre manuellement.
- Chacun crée une branche
[initiales]/modif-conflitdepuismain - Tous modifient la même ligne dans
conflit.txt - Poussez votre branche et créez une PR
- Le premier merge passera, les autres participants doivent pull la branche main.
- Les autres devront résoudre le conflit manuellement (sans instructions explicites)
- Validez que les conflits sont bien résolus puis merger
Objectif : Remplir un fichier en groupe via plusieurs branches et reviews croisées.
- Créez un fichier
recette.mdcontenant trois sections : Introduction / Ingrédients / Étapes - Attribuez-vous chacun une section
- Créez une branche
[initiales]/section-nom(ex :cd/ajout-ingredients) - Remplissez votre section
- Créez une PR, faites-la review par un autre membre avant de merger
Objectif : Découvrir le rebase et gérer les conflits qui en découlent.
- Une personne crée une branche
[initiales]/fonctionnalite-xet modifiefichier.txt - Quelqu'un d'autre modifie la même partie sur
mainet merge - Le premier fait un
rebasede sa branche surmainet résout les conflits - Une fois le
rebaseterminé, force lepush - Crée une PR pour merger proprement dans
main
Objectif : Simuler un vrai workflow de collaboration sur un mini-projet web.
- Le repo contient :
index.html,style.css,utils.js - Chaque étudiant prend un fichier et crée une branche
[initiales]/modification-type(ex:AZ/ajout-style-formulaire) - Modifiez votre fichier
- Créez une PR, demandez une review
- Mettez à jour la branche si besoin, puis mergez
- Ne pas travailler directement sur
main - Créer des branches claires :
[initiales]/featureoufix/login-error - Nommer correctement les commits
- Toujours passer par une Pull Request
- Relecture obligatoire par au moins une personne
- Résoudre les conflits calmement
Pour aller plus loin :
- Rebase interactif (
git rebase -i) - Squash de commits
- GitHub Projects / Issues / Labels