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

> \[!NOTE] 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 copy
gh extension install github/gh-stack
```

> \[!TIP]
> 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 copy
> 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 copy
   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.

   ```shell
   # ... 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 copy
   gh stack add BRANCH-NAME
   # ... write code ...
   git add .
   git commit -m "Another-helpful-commit-message"
   ```

4. Envoyez toutes les branches à distance.

   ```shell copy
   gh stack push
   ```

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

   ```shell copy
   gh stack submit
   ```

   Chaque demande de tirage est créée avec la branche de base correcte. Vos premières cibles `main`de 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 copy
   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.

   ```shell
   # 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 copy
   gh stack submit
   ```

## Étapes suivantes

* [Gestion des demandes de tirage empilées](/fr/enterprise-cloud@latest/pull-requests/how-tos/create-pull-requests/managing-stacked-pull-requests)
* [Fusion des demandes de tirage empilées](/fr/enterprise-cloud@latest/pull-requests/how-tos/merge-and-close-pull-requests/merging-stacked-pull-requests)
* [Code généré par l’IA stack dans les demandes de tirage](/fr/enterprise-cloud@latest/copilot/tutorials/stack-ai-generated-code-in-pull-requests)
* [Déployer des demandes de tirage empilées dans votre organisation](/fr/enterprise-cloud@latest/pull-requests/tutorials/roll-out-stacked-prs)