La pull request : le rituel du travail en équipe
Le gain du jour : tu vas dérouler, seul mais pour de vrai, le cycle complet qu’utilisent toutes les équipes du monde : branche → commits → push → pull request → revue → merge. C’est la leçon-sommet de ce cours : tout ce qu’on a appris converge ici.
Échauffement — de mémoire, sans tricher
0. Quel duo de commandes fait circuler les commits entre ta machine et GitHub ?
C’est quoi, une pull request ?
Une pull request (PR) est une page GitHub qui dit à ton équipe :
« ma branche est prête — voici mes changements, merci de les relire avant qu’ils
n’entrent dans main »
(GitHub Docs, « À propos des pull requests »).
Ce n’est pas une commande Git : c’est une invention de GitHub, construite au-dessus des branches.
La PR est l’endroit où l’équipe :
- voit le diff complet de ta branche par rapport à
main(tes leçons 2 et 4 réunies) ; - commente ligne par ligne — c’est la revue de code : questions, suggestions, approbation ;
- merge d’un clic quand c’est approuvé — GitHub fait le
git mergepour toi, côté serveur.
Quatre yeux valent mieux que deux : la revue attrape les bugs, diffuse la connaissance du code
dans l’équipe, et garde main toujours déployable. Dans la plupart des équipes,
pousser directement sur main est d’ailleurs interdit par configuration
(« branch protection »).
Le cycle complet en une image
1. git switch -c ma-tache # local : une branche par tâche
2. …travail, add, commit… # local : photos propres, messages impératifs
3. git push -u origin ma-tache # la branche monte sur GitHub
4. Ouvrir la PR # sur GitHub (ou : gh pr create)
5. Revue : commentaires ↔ correctifs (commit + push = la PR se met à jour toute seule)
6. Merge sur GitHub, suppression de la branche
7. git switch main && git pull # local : récupérer le main à jour
Le -u de l’étape 3 (une seule fois par branche) lie ta branche locale à sa jumelle
sur origin — ensuite, git push tout court suffit.
À toi de jouer — une vraie PR, en solo
Branche de travail (jamais sur main !) :
cd ~/Workspaces/pythons/git-entrainement git switch main && git pull # toujours partir d'un main à jour git switch -c ajout-readmeFais le travail, en deux commits propres :
echo "# Projet d'entraînement Git" > README.md git add README.md git commit -m "Ajoute le README du projet" echo "Dépôt d'exercices du cours Git." >> README.md git add README.md git commit -m "Décrit l'objectif du dépôt dans le README"Pousse la branche :
git push -u origin ajout-readmeOuvre la pull request :
gh pr create --title "Ajoute le README du projet" --body "Première PR d'entraînement : ajoute un README qui décrit le dépôt."(Ou sur le site : GitHub affiche un bandeau jaune « Compare & pull request » dès qu’une branche vient d’être poussée.) Puis ouvre-la dans le navigateur :
gh pr view --web.Joue le relecteur. Sur la page de la PR, onglet « Files changed » : c’est le diff que verrait ton équipe. Passe la souris sur une ligne, clique le
+bleu, écris un commentaire (par exemple « il faudrait préciser le nom du cours »), puis « Start a review » → « Finish your review ». Tu viens de faire ta première revue de code.Réponds à la revue comme le ferait l’auteur : corrige en local, commite, pousse :
echo "Cours : Git & GitHub pour débutants." >> README.md git add README.md git commit -m "Précise le nom du cours dans le README" git pushRecharge la page de la PR : le nouveau commit y est apparu tout seul. Une PR suit sa branche — c’est ça, la boucle de la revue : commentaire → correctif → push → re-lecture.
Merge la PR et nettoie :
gh pr merge --merge --delete-branch git switch main && git pull git log --oneline # ton travail est dans main, via une PR relue
Vérifie ta compréhension
1. Un relecteur demande un changement sur ta PR ouverte. Que fais-tu ?
2. Que montre l'onglet « Files changed » d'une pull request ?
3. Quel est l'intérêt principal de passer par une PR plutôt que pousser sur main ?
Pour aller plus loin
📖 Source principale : GitHub Docs (fr) — « À propos des pull requests ». Pour le contexte historique et le workflow complet : Pro Git (fr) — « GitHub : contribution à un projet » (qui couvre aussi le fork, la variante open source de ce cycle).
🗂 Fiche mise à jour : Commandes Git — antisèche.