Note
Stacked PRs is currently in private preview. This CLI and the referenced functionality will not work unless the feature has been enabled for your repository.
You can sign up for the waitlist at gh.io/stacksbeta.
gh-stack is a GitHub CLI extension for managing stacked branches and pull requests. Learn more about GitHub Stacked PRs here.
View the Quick Start guide or upgrade to the latest version with:
gh extension upgrade stackWhat's new in v0.0.6
Added
gh stack rebase --no-trunk: New flag that runs only the inter-branch cascade rebase, skipping all remote fetch and trunk operations so you can align branches without touching the network.- PR URL arguments:
gh stack linkandgh stack checkoutnow accept full PR URLs (e.g.https://github.com/org/repo/pull/42) in addition to PR numbers and branch names. - Cached remote selection: After interactively choosing a remote, you can save it to
gh-stack.remotegit config so you're not prompted on every operation. - PAT auth warning: When authenticated with an unsupported personal access token, the CLI now shows a clear "run
gh auth login" message instead of a misleading "Stacked PRs are not enabled" error.
Changed
gh stack linkPR eligibility validation: Merged, closed, merge-queued, or auto-merge-enabled PRs are now rejected up front with per-PR error messages before any stack operations run.- Auto-merge disabled on adopted PRs:
gh stack submitnow detects and disables auto-merge on existing PRs it adopts, preventing them from merging independently and breaking the stack. gh stack initno longer silently detects prefixes: Explicit branch names with slashes are taken literally; use--prefixto opt into a prefix.
Fixed
git pushfailures with stale tracking refs: Push now fetches and builds explicit--force-with-leaseleases per branch, fixing "stale info" rejections for branches lacking a local tracking ref.gh stack syncwith no local trunk: Sync now skips the trunk fast-forward silently when only the remote tracking ref exists, avoiding spurious rebases and force-pushes.- Missing local trunk crashes: A new
ensureLocalTrunkhelper fetches and creates the trunk branch formodify,rebase, andtrunkwhen it only exists on the remote (e.g. after renaming the initial branch).
Changelog
- Bump github.com/cli/cli/v2 from 2.92.0 to 2.93.0 in the go_modules group across 1 directory by @dependabot[bot] in #110
- link PR validation by @skarim in #112
- alert for unsupported auth tokens by @skarim in #113
- disable automerge when adding existing PRs to stack by @skarim in #120
- parse PR URLs in args by @skarim in #122
- fix push for branches with stale tracking refs by @skarim in #124
- fix for sync with no local trunk by @skarim in #125
- remove silent prefix detection in init by @skarim in #126
- ensure local trunk branch for required operations by @skarim in #127
- cache selected remote by @skarim in #128
- rebase without trunk by @skarim in #129
Full Diff: v0.0.5...v0.0.6