Skip to main content

Démarrage rapide pour les demandes de tirage empilées

Installez l’extension gh stack dans GitHub CLI et créez votre premier ensemble de demandes de tirage empilées.

Remarque

Cette fonctionnalité est disponible en préversion publique et peut être modifiée.

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 envoyer (push).

Installer l’extension CLI

Shell
gh extension install github/gh-stack

Conseil

Pour utiliser des demandes de tirage empilées avec des agents de codage IA, par exemple GitHub Copilot, installez la gh-stack compétence.

Shell
gh skill install github/gh-stack

Créer votre première pile

  1. Pour initialiser une pile, 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é à nommer votre première branche. Par défaut, la pile utilise la branche par défaut de votre référentiel (par exemple, main) comme jonction, mais une pile peut cibler n’importe quelle branche.

  2. Travaillez sur votre première branche comme d’habitude : écrire du code, effectuer des modifications d’étape 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 à distance.

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

    Shell
    gh stack submit
    

    Chaque demande de tirage est créée avec la branche de base correcte. Vos premières cibles mainde branche, et la branche BRANCH-NAME suivante cible la première branche. Les réviseurs verront uniquement les différences pour cette couche. Les demandes de tirage sont automatiquement liées en tant que pile sur GitHub laquelle vous pouvez voir leur commande et naviguer rapidement entre elles.

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

    Shell
    gh stack view
    

    Cette commande affiche toutes les branches, leurs liens de demande de tirage, leurs états et la validation la plus récente sur chacun d’eux.

  7. Permet gh stack add -Am "MESSAGE" d’effectuer l’étape de toutes les modifications, de valider et de créer la branche suivante en une seule étape. Vous n’aurez pas besoin d’un élément distinct git add ou git commit. Si la branche actuelle n’a pas encore de validation, la validation y arrive ; s’il a déjà des validations, 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, envoyez tout et créez les demandes de tirage.

    Shell
    gh stack submit
    

Étapes suivantes