gh-stack: GitHub CLI extension optimized for stacked pull requests
gh-stack is a GitHub CLI extension for stacked PRs that automates branch creation, rebasing, and per-layer submissions—ideal for teams splitting large changes into small, reviewable units.
GitHub github/gh-stack Updated 2026-08-02 Branch main Stars 813 Forks 37
GitHub CLI git workflow stacked PR management CLI tool rebase automation AI agent integration

💡 Deep Analysis

5
Why store stack metadata in .git/gh-stack? What are the advantages and limitations of this architecture?

Core Analysis

Project Positioning: gh-stack stores stack state and interrupted rebase info in .git/gh-stack and .git/gh-stack-rebase-state to keep runtime metadata out of repository history while enabling local recovery points.

Technical Features (Advantages)

  • History-safe: Metadata is not committed, keeping Git history clean.
  • Local atomic recovery: Interrupted rebase state kept in .git allows reliable continue/abort behavior after conflicts.
  • Lightweight implementation: JSON files are easy to read/modify and fit the gh extension model.

Usage Recommendations

  1. Sync strategy: For multi-machine workflows, use gh stack submit / gh stack checkout to pull remote mappings or adopt team conventions to propagate stack structure.
  2. Backup caution: Push all branches or export stack lists to avoid losing .git metadata.

Important Notice: Files in .git are not automatically synchronized; accidental deletion or repo migration can lose local metadata.

Summary: Storing metadata in .git provides strong local recoverability and avoids history pollution, but requires explicit team synchronization and backup practices for cross-machine collaboration.

85.0%
How does gh-stack handle multi-layer rebases and conflicts, and how can conflict-resolution costs be minimized?

Core Analysis

Project Positioning: gh-stack reduces rebase costs by cascading rebases, auto-enabling git rerere, and persisting interrupted rebase state; it also supports --onto for already-merged layers.

Technical Features

  • Auto-enabled git rerere: Remembers prior conflict resolutions and reapplies them, reducing repeated work.
  • Interrupted-state persistence: .git/gh-stack-rebase-state ensures you can reliably --continue or --abort after conflicts.
  • Cascading rebase and --onto: Rebase entire stack or subsets; handle already-merged layers by replaying atop a new base.

Usage Recommendations

  1. Enable and understand git rerere (activated by gh stack init) to reuse conflict resolutions.
  2. After conflicts, use git add + gh stack rebase --continue in order to preserve context and avoid accidental skips.
  3. Manually review semantic conflicts: renames and major logic changes still require human judgment.

Important Notice: Concurrent multi-author rewrites on the same stack can produce complex conflicts; restrict concurrency or use conservative merge strategies in such cases.

Summary: gh-stack reduces repeated conflict work and offers reliable recovery, but cannot replace manual resolution for complex conflicts or the need for team coordination.

85.0%
For team members unfamiliar with the CLI or rebase, what are the learning costs and common pitfalls of adopting gh-stack, and how to mitigate them?

Core Analysis

Project Positioning: gh-stack targets mid-to-senior CLI-savvy developers; newcomers must learn rebase and stack concepts. The tool provides interactive prompts but does not replace foundational rebase/conflict training.

Technical Traits and Pitfalls

  • Learning cost: Understanding rebase, git rerere, stack navigation (top/bottom/up/down), and correct use of --continue/--abort.
  • Common pitfalls: Mishandling interrupted rebases, accidentally deleting .git/gh-stack, local/remote stack inconsistencies overwriting unpushed work, and complex conflicts from concurrent history rewrites.

Practical Recommendations (Risk Mitigation)

  1. Training & docs: Provide short tutorials covering rebase flows, conflict examples, and common gh stack commands.
  2. Permissions & conventions: Limit who can force-push shared stacks; require backing up branches before major operations.
  3. Operational safeguards: Enable git rerere, run isolated CI per layer, and use gh stack view to verify stack state before critical steps.

Important Notice: Do not use gh-stack as a primary workflow in organizations that forbid force-pushes or history rewriting.

Summary: With focused training, team conventions, and safety practices (backups and CI), non-experts can use gh-stack safely without compromising repository integrity.

85.0%
How to integrate gh-stack with existing CI/review processes to avoid CI noise and review chaos from frequent rebases?

Core Analysis

Project Positioning: gh-stack creates multiple layered PRs; without CI differentiation, repeated rebases can trigger a lot of redundant CI runs. You should design CI and review policies to limit unnecessary runs.

Integration Strategies

  • Incremental/lightweight CI: Run only affected unit tests or fast linters on each layer PR to avoid full pipeline runs on every rebase.
  • Merge-gate full CI: Reserve expensive integration/end-to-end tests for merge-time or when the bottom layer is merged (protected-branch checks).
  • Annotate PRs with stack metadata: Add stack index/base info in PR templates or automated checks to ensure correct base relationships.
  • Batch push/submit to throttle: Use gh stack push and gh stack submit to reduce intermediate states that trigger CI.

Practical Recommendations

  1. Team conventions: Define who maintains the stack, when to rebase, and when to allow full CI runs.
  2. CI optimizations: Use path-based triggers and caching to cut redundant work.

Important Notice: If your codebase cannot isolate tests per layer (heavy integration coupling), evaluate CI cost before adopting gh-stack.

Summary: By splitting incremental vs full checks, annotating PRs, and batching operations, gh-stack can be integrated with CI/review systems while controlling resource waste and review noise.

85.0%
If a team decides to shift from traditional single-branch/large-PR workflow to gh-stack, what migration steps are recommended and what alternatives should be compared?

Core Analysis

Project Positioning: gh-stack can replace large-PR workflows via gradual adoption with proper policies. However, if org policies forbid force-pushes, it may be unsuitable.

  1. Pilot: Start with a small team or non-critical module to measure CI and review impact.
  2. Create playbook: Document stack naming, rebase/conflict resolution procedures, push/submit rules, and rollback steps.
  3. Adjust CI: Implement incremental tests and merge-gate full CI to avoid full pipeline runs on every rebase.
  4. Permissions & protections: Define who can force-push and require backups for important branches.
  5. Training & metrics: Run hands-on training and monitor conflict frequency, CI runs, and review times to iterate.

Alternatives to Compare

  • Conservative approach: Keep single large PRs or staged merges (merge commits) if history rewriting is forbidden.
  • Review platforms: Gerrit/Phabricator support patchset/dependency review models suited for strict audit or policy-constrained environments.

Important Notice: Base choice on history-rewrite policy, CI cost, and review efficiency.

Summary: With pilot, documentation, CI/permission changes, and training, a team can safely move to gh-stack; otherwise evaluate merge-based or specialized review tools as alternatives.

85.0%

✨ Highlights

  • Automates management of stacked branches and PRs, reducing repetitive manual work
  • Stores local metadata in .git/gh-stack, enabling navigation and recovery workflows
  • Depends on GitHub CLI (gh v2.0+) and familiarity with local git operations
  • License and tech-stack info missing; contributor and release history unclear

🔧 Engineering

  • Provides init/add/checkout/push/submit commands to auto-set PR bases and link branches into a Stack
  • Supports auto-commits during add, enables git rerere, and preserves state for interrupted rebases
  • Integrates with gh skill to allow AI coding agents to interact with stacked PR workflows

⚠️ Risks

  • No license listed publicly; enterprise adoption requires an explicit compliance review
  • Repository metadata shows no contributors or releases; actual maintenance activity should be verified
  • Limited documentation on compatibility and edge cases for complex rebases and very large repositories

👥 For who?

  • Teams and maintainers who split large changes into reviewable stacked layers
  • Developers, reviewers, and CI engineers comfortable with the git/gh command line
  • Automation scenarios that incorporate AI agents into the submission workflow