← Git & GitHub : du premier commit au travail en équipe

La pull request : le rituel du travail en équipe

≈ 25 minutes · Jalon M5 · Prérequis : Publier sur GitHub

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 :

Pourquoi ce détour, plutôt que pousser sur main directement ?

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

  1. 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-readme
  2. Fais 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"
  3. Pousse la branche :

    git push -u origin ajout-readme
  4. Ouvre 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.

  5. 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.

  6. 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 push

    Recharge 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.

  7. 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.