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.
- Authentifiez-vous GitHub CLI avec
- Dépôt GitHub vers lequel vous pouvez envoyer (push).
Installer l’extension CLI
gh extension install github/gh-stack
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.
gh skill install github/gh-stack
gh skill install github/gh-stack
Créer votre première pile
-
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
gh stack initVous 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. -
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" -
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"
gh stack add BRANCH-NAME # ... write code ... git add . git commit -m "Another-helpful-commit-message" -
Envoyez toutes les branches à distance.
Shell gh stack push
gh stack push -
Créez des demandes de tirage (pull requests) et liez-les en tant que pile sur GitHub.
Shell gh stack submit
gh stack submitChaque demande de tirage est créée avec la branche de base correcte. Vos premières cibles
mainde branche, et la brancheBRANCH-NAMEsuivante 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. -
Affichez la pile et affichez l’état complet à tout moment.
Shell gh stack view
gh stack viewCette commande affiche toutes les branches, leurs liens de demande de tirage, leurs états et la validation la plus récente sur chacun d’eux.
-
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 distinctgit addougit 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" -
Lorsque vous êtes prêt, envoyez tout et créez les demandes de tirage.
Shell gh stack submit
gh stack submit