Sans PR
git push origin main direct → main cassé → rollback d’urgence
Sans PR, tout le monde pousse sur main → chaos, régressions, pas de recul.
Avec PR, chaque changement :
Sans PR
git push origin main direct → main cassé → rollback d’urgence
Avec PR
feature → PR → 1 approbation + CI → merge → main protégé
Closes #42 2. Branch depuis main à jour : bash git switch main git pull origin main git switch -c feature/bouton-bleu 3. Commits
atomiques 4. Push avec upstreamCommandes à exécuter
Commandes à exécuter
feat: add bouton bleu (Closes #42)## Contexte
Closes #42
## Changements
- Ajout style bouton bleu
## Screenshots
![bouton bleu]
## Checklist
- [x] Tests verts- [x] Pas de secret commitéTemplates dans .github/PULL_REQUEST_TEMPLATE.md et .github/ISSUE_TEMPLATE/* remplissent automatiquement.
ghgh pr create --title "feat: add bouton bleu" --body "Closes #42" --draftgh pr create --fill # remplit depuis les commitsgh pr view --webgh pr checkout 42gh pr view 42 --json state,reviewDecision| État | Signification | Mergeable ? |
|---|---|---|
| Draft | Brouillon, WIP, CI peut tourner, pas de review requise | ❌ Non |
| Ready for review | Prête, reviewers notifiés | ✅ Si checks verts |
| Changes requested | Un reviewer a demandé des corrections | ❌ Attend nouveau push |
| Approved | 1+ Approve |
✅ |
| Merged | Fusionnée dans main |
— |
| Closed | Abandonnée | — |
Convertir :
gh pr ready 42gh pr ready 42 --undoCODEOWNERS — reviewers auto.github/CODEOWNERS
# Frontend → @org/frontend-leads*.js @joinhashcode/frontend/docs/ @joinhashcode/docs-team* @joinhashcode/tech-leadsToute PR touchant *.js notifie automatiquement frontend.
Suggestion sur une ligne → bouton Commit suggestionBienveillance Le but n’est pas de juger, mais d’améliorer la qualité ensemble.
Pour l'auteur
Pour le reviewer
suggestion -
Approve dès que le fond est OK (nit = non bloquant) - Après correction : re-request review ou
nouveau ApproveCommandes à exécuter
git merge --no-ff)main (recommandé pour features)main doit être protégée : pas de push direct, 1 Approve requis, CI verte.
Qu'est-ce qu'une PR ?
Cliquer pour révéler la réponseDemande de fusion d'une branche (feature/xxx) dans main, avec description, review et CI.
Cliquer pour voir la questionCommande pour pousser une feature prête à PR ?
Cliquer pour révéler la réponsegit push -u origin feature/xxx
Cliquer pour voir la questionDraft vs Ready ?
Cliquer pour révéler la réponseDraft = brouillon non mergeable. Ready = prête pour review et merge.
Cliquer pour voir la questionÀ quoi sert CODEOWNERS ?
Cliquer pour révéler la réponseAssigner automatiquement les reviewers selon les fichiers modifiés (ex: *.js → @frontend).
Cliquer pour voir la question3 types de review ?
Cliquer pour révéler la réponseComment, Approve, Request changes (bloquant). + Suggestions.
Cliquer pour voir la questionQue mettre dans une description de PR ?
Cliquer pour révéler la réponseContexte (Closes #), changements, screenshots, checklist tests.
Cliquer pour voir la questionComment créer une PR en draft via gh ?
Cliquer pour révéler la réponsegh pr create --draft --fill ou --title --body
Cliquer pour voir la questionPourquoi petites PRs ?
Cliquer pour révéler la réponseRevue plus rapide, moins de bugs, feedback tôt.
Cliquer pour voir la question1. Qu'est-ce qu'une Pull Request ?
2. Pourquoi garder les PRs petites ?
3. Quelle commande crée une PR draft via gh ?
4. Que fait CODEOWNERS ?
# Préparergit switch main && git pull origin maingit switch -c feature/xxxgit commit -m "feat: xxx" && git push -u origin feature/xxx
# Créer PRgh pr create --draft --fillgh pr create --title "feat: xxx" --body "Closes #42"gh pr view --webgh pr checkout 42
# Reviewgh pr view 42 --json reviewDecisiongh pr review --approvegh pr review --request-changes --body "…"
# Draft ↔ Readygh pr ready 42gh pr ready 42 --undo
# Mergegh pr merge 42 --squash --delete-branchgh pr merge 42 --mergegh pr merge 42 --rebasemain : Issue → Branch → Commits → Push → PR Draft → Review → Merge squash.CODEOWNERS automatise les reviewers, gh pr automatise la création et le suivi.main au lieu d’une feature → toujours git switch -c feature/xxx depuis main à jour.-u puis git push échoue → git push -u origin feature/xxx au premier push.gh pr ready.Approve → la PR reste bloquée par la branch protection.PR maîtrisée, voyons comment organiser le travail à l’échelle du projet : Issues, labels, Projects, milestones.
Étape suivante : Gestion de Projet GitHub