À propos du projet

gh stack est une extension GitHub CLI qui gère les branches empilées et les pull requests. Les PR empilées divisent un grand changement en une chaîne de petites pull requests faciles à réviser qui s'appuient les unes sur les autres ; cet outil automatise la création de branches, maintient les branches rebasées, définit les bonnes branches de base des PR et permet de naviguer entre les couches. L'installation se fait via `gh extension install github/gh-stack` et nécessite GitHub CLI v2.0+. Une compétence optionnelle peut être installée pour les agents de codage IA. Modèle de base : une stack est une liste ordonnée de branches, chacune basée sur celle du dessous, la branche inférieure étant basée sur une branche trunk (généralement main). Les métadonnées de la stack sont stockées localement dans `.git/gh-stack` au format JSON, avec l'état de rebase dans un fichier séparé. Les commandes incluent : - init : initialiser une stack, avec adoption optionnelle de branches existantes, avec un trunk configurable. - add : créer une nouvelle branche au sommet de la stack, avec des options pour indexer et committer les changements. - checkout : extraire une stack par numéro de stack, numéro de PR, URL de PR ou nom de branche, y compris un sélecteur interactif pour les stacks locales et distantes. - rebase : récupérer et cascader les rebases à travers la stack, avec un cadrage downstack/upstack/no-trunk et la gestion continue/abort. - modify : une interface terminal interactive pour supprimer, fusionner, insérer, renommer et réordonner les branches. - sync : récupérer, réconcilier la stack distante, fast-forward le trunk, cascader le rebase, pousser, synchroniser l'état des PR, lier la stack et élaguer éventuellement les branches fusionnées. - push : pousser les branches actives avec des vérifications force-with-lease par branche. - submit : pousser les branches et créer ou mettre à jour les PR et la stack GitHub, avec un éditeur interactif ou un mode automatique. - link : créer ou mettre à jour une stack GitHub à partir de noms de branches ou de numéros de PR sans suivi local, utile avec d'autres outils de branches locales. - merge : fusionner une ou plusieurs PR empilées dans une opération tout ou rien, avec des options de méthode de fusion et la prise en compte de la file de fusion. - view : afficher les branches de la stack, l'ordre, les liens des PR et les commits récents, avec une sortie courte et JSON. - unstack/delete : supprimer une stack du suivi local et/ou de GitHub. - Commandes de navigation (up, down, top, bottom) pour se déplacer entre les branches de la stack actuelle. Le README documente en détail les flags, exemples, préconditions et comportements tels que la gestion des divergences et les interactions avec la file de fusion.