Skip to main content
Skip to content

Démarrage rapide pour les pull requests empilées

Installez l’extension gh stack dans GitHub CLI et créez votre première série de pull requests empilées.

Utilisez des demandes de tirage empilées pour interrompre les modifications de code volumineuses dans une chaîne de demandes de tirage plus petites et dépendantes que vous pouvez examiner et fusionner indépendamment.

Une pile est une série de demandes d’extraction dans le même référentiel où chaque demande de tirage cible la branche de la demande de tirage sous celle-ci, formant une chaîne ordonnée qui atterrit sur une branche unique, généralement votre branche principale. Au lieu d’une demande de tirage volumineuse, vous obtenez un ensemble de demandes de tirage plus petites. Étant donné que chaque demande de tirage a ses propres différences ciblées, les collègues peuvent examiner et approuver chaque couche indépendamment.

Prerequisites

  • GitHub CLI (gh) 2.90.0 ou version ultérieure, et Git 2.20 ou version ultérieure.
    • Authentifiez-vous GitHub CLI avec gh auth login.
  • Dépôt GitHub vers lequel vous pouvez push.

Installer l’extension CLI

Shell
gh extension install github/gh-stack

Conseil

Pour utiliser des pull requests empilées avec des agents IA de codage, comme GitHub Copilot, installez le skill gh-stack.

Shell
gh skill install github/gh-stack

Créer votre première stack

  1. Pour initialiser une stack, accédez à votre référentiel et exécutez la commande suivante. Cela crée une entrée de suivi et votre première branche.

    Shell
    gh stack init
    

    Vous serez invité à donner un nom à votre première branche. Par défaut, la pile utilise la branche par défaut de votre référentiel (par exemple, main) comme tronc principal, mais une pile peut cibler n’importe quelle branche.

  2. Travaillez sur votre première branche comme d’habitude : écrire du code, placer les modifications en zone de préparation et valider.

    # ... write code ...
    git add .
    git commit -m "helpful-commit-message"
    
  3. Lorsque vous êtes prêt pour l’unité logique suivante de travail, ajoutez une nouvelle branche en haut de la pile.

    Shell
    gh stack add BRANCH-NAME
    # ... write code ...
    git add .
    git commit -m "Another-helpful-commit-message"
    
  4. Envoyez toutes les branches vers le dépôt distant.

    Shell
    gh stack push
    
  5. Créez des pull requests et liez-les en tant que pile sur GitHub.

    Shell
    gh stack submit
    

    Chaque pull request est créée avec la branche de base correcte. Votre première branche cible main, et la branche suivante BRANCH-NAME cible la première branche. Les réviseurs verront uniquement les différences pour cette couche. Les pull requests sont automatiquement liées ensemble sous forme de pile sur GitHub, où vous pouvez voir leur ordre et naviguer rapidement entre elles.

  6. Affichez la pile et consultez l’état complet à tout moment.

    Shell
    gh stack view
    

    Cette commande affiche toutes les branches, leurs liens de pull request, leurs états et le commit le plus récent sur chacune d’elles.

  7. Utilisez gh stack add -Am "MESSAGE" pour indexer toutes les modifications, valider et créer la branche suivante en une seule étape. Vous n’aurez pas besoin d’un git add ou git commit séparé. Si la branche actuelle n’a pas encore de commit, le commit y est ajouté ; si elle a déjà des commits, une nouvelle branche est créée.

    # Commit lands on the current branch
    gh stack add -Am "Auth middleware"
    
    # Current branch already has commits, so this creates the next branch
    gh stack add -Am "API routes"
    
  8. Lorsque vous êtes prêt, poussez tout et créez les pull requests.

    Shell
    gh stack submit
    

Étapes suivantes