Stacked pull requests are now in public preview 🚀 #201439
Replies: 318 comments 184 replies
|
gh extension install github/gh-stack |
|
My claude code workflow would love if the CLI allowed merging stacks as well. Further, when the stack requires a rebase, the "merge" button is still green and seems to attempt a merge that will inevitably fail, this is rather frustrating as it takes quite some time for the UI to reflect this |
|
Please show the PR approvals on the stack list and merge stack list! |
|
Idk if I did something wrong, but I did merge PR2 and then PR1 and only got PR1 merged to main. I had to merge main into PR2 and solve conflicts to be able to merge that one as well. In any case, I think it's not very intuitive what's going on; this was my structure:
|
|
Thanks for the 🥞! |
|
Can I unstack them so that I can merge things? Right now I have a PR to Branch A and cannot merge it because the PR from Branch A to Develop is blocking it, seems kind of dumb. |
|
A share button that copies the links to each PR in the stack so I can share with my colleagues when asking them to review |
|
It would be great if you made it so these new stack commands worked via github PATs - otherwise it will be a little dangerous with agents (you have to give them full access). |
|
this feature looks really promising, but I think it only becomes useful when a contributor who doesn't have access to the repo can stack PR submissions. unless I'm missing something, all branches must be in the same repo currently. They aren't when you submit a PR to another repo, and you might want to stack onto your first PR |
|
I have a use case for this that would be greatly improved with a pretty minor change. Occasionally, I need to make a change that should be deployed in multiple separate steps. For example, removing an S3 bucket from a Terraform deployment - first I need to merge a change to enable force-destroy and apply that (so it can be removed without emptying its contents first), then I need to merge a second change to actually remove it. Stacked PRs look like a great way to create both PRs ahead of time and mark them as related for reviewers, but I don't see any way for the stack creator to force the individual PRs to be merged separately. In the case I described above, someone merging both of them at once defeats the purpose and causes a failed apply. If I could disable merging multiple PRs at once for a specific stack, it would be much more useful and safer for this use case. |
|
I lowkey dislike the github stacks feature they added |
|
EDIT: Seems there is a phased rollout, as we now have support! This feature is not currently working for any repo in our organization that has a Merge Queue. Is there any guidance of how to enable this? I verified this to see 404 vs. 200 statuses for the stack feature against all of our repos. |
|
Would be nice to be able to mark a whole stack as "ready for review" at once |
|
All commits before the stack are suddenly unverified even though no changes were made to my local signing ability, any commits pushed up after stacking are verified as usual |
|
Some feedback:
|
|
It's a bit crazy to me that Github needs to advertise this feature withing github:
Why is this not part of UI and now becomes part of issue and commit history unless edited? The noise on github about github keeps increasing. It's a great feature aside from that annoyance though! |
|
Hi 👋 Adding info to the squash-merge-stack failures case already reported here:
Symptom:
Might be worth checking whether the preview's mergeability check is racing against approval dismissal specifically in orgs mixing classic branch protection with rulesets on the same branch 🤔 ? |
|
Feature Request: Add an Use case: Engineers on personal GitHub accounts who want work commits attributed to their company email. For now, merging each PR manually with |
|
Stacked PRs, especially with squashed merges is entirely broken. The UI does not reflect the errors either. I get better error messages locally: this should have been accounted for, or should not be enabled for repos where these settings are applied. |
|
https://github.com/orgs/community/discussions/204981 I filed this today and it seems like a real gap in the product. The feedback is: Add an org/repo setting to disable Stacked Pull Requests🏷️ Discussion TypeProduct Feedback BodyStacked pull requests do not need setup. The feature works for a repo as soon as a user makes a stack. Some orgs want to turn this off. Please add a setting to disable Stacked Pull Requests at the organization level or the repository level. Reasons for this request:
Current workaround and its gap: We already restrict CI to only run on pull requests that target our mainline branches. When we tested this against a stack, a CI job ran anyway on an intermediate PR that did not target a mainline branch — the stack bypassed our restriction. Without a real disable option, we have no reliable way to stop CI from running on these PRs. Request:
|
|
Sounds like a genuine UI bug, especially since it’s consistently
reproducible from the “Involves me” page. report it with the
browser/version and exact steps to reproduce, as that should make it easier
for GitHub to trace. Hopefully it gets picked up quickly since the rest of
the experience sounds solid.
…On Tue, Aug 11, 2026 at 11:19 AM Adrian Schmidt ***@***.***> wrote:
Great feature!
There seems to be no ruleset override available on stacked PRs though? On
a non-stacked PR, I can check a box to "Merge without waiting for
requirements to be met (bypass rules)", but on stacked PRs there is no such
option.
—
Reply to this email directly, view it on GitHub
<#201439?email_source=notifications&email_token=CHUCEBYFNDAJEPYBHPIMEGD5JLCGZA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCNZZG4ZDEMZYUZZGKYLTN5XKOY3PNVWWK3TUUVSXMZLOOSWGM33PORSXEX3DNRUWG2Y#discussioncomment-17972238>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/CHUCEB4FBREP2XECOTKSQ3D5JLCGZAVCNFSNUABIKJSXA33TNF2G64TZHMZTAMJVG4ZTGNBUHNCGS43DOVZXG2LPNY5TCMBUGAYTCMRWUF3AE>
.
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS
<https://github.com/notifications/mobile/ios/CHUCEB6IADQ2P3UCMSZXM635JLCGZA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCNZZG4ZDEMZYUZZGKYLTN5XKOY3PNVWWK3TUUVSXMZLOOSVGM33PORSXEX3JN5ZQ>
and Android
<https://github.com/notifications/mobile/android/CHUCEB3K2CXF2ZEULW5AXLT5JLCGZA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCNZZG4ZDEMZYUZZGKYLTN5XKOY3PNVWWK3TUUVSXMZLOOSXGM33PORSXEX3BNZSHE33JMQ>.
Download it today!
You are receiving this because you commented.Message ID:
***@***.***>
|
|
Confirmed stacked-PR readiness bug involving duplicate GitHub Actions runs for the same head commit. Setup:
Observed: the affected layer remained blocked / stack not ready. Confirmed workaround: rerunning the higher-ID cancelled workflow changed the PR from blocked to clean without any branch or stack changes. This suggests stack readiness may select the later cancelled check suite even when another suite on the exact head SHA satisfies every required check. The normal PR check presentation showed green, obscuring the blocker. Expected: stack readiness should accept successful required checks on the current head, or expose the exact workflow run/check causing the blocked state. Environment: gh 2.96.0, gh-stack v0.1.0. The repository is private, so links and identifiers are intentionally omitted. |
|
We have a rather more complex case, which I am not even sure if without stacked PRs we are abusing some undocumented bug. Basically we have 2 branch rule sets that apply to the same
This setup, at least to our testing works fine, i.e. the rules seem to be merged together (we don't know what would happen if there were duplicate items in both), and the privileged team can force bypass some of the checks if the other checks like resolved PR comments is satisfied. But on stacked PRs, this is no longer the case. At the very beginning I believe the button was there, but now it is completely grayed out, as if the checks are merged together without any of the bypass rules. |
|
My use case is to have distinct but slightly coupled work stacked on top of each other. For example, refactoring done in PR 1 can be used by PR 2 stacked on top of it. But, I want to merge all the individual PRs separately. The one-click merge all button merges only the top PR (which technically does merge all the PRs below it, but the branch only has 1 merge commit, not 1 for each PR) The workaround is to manually merge each PR. However, when merging PRs like this in rapid succession, the CI for the unmerged PRs can fail: PR 550 is the first PR and PR 551 is the second PR stacked on top of the first. This is the CI run for PR 551, after merging PR 550, and probably after merging PR 551 as well (I merged the 2 PRs individually in rapid succession, probably before the checkout task started). This CI run was started because of the automatic rebase after merging PR 550 |
|
Yet another error message completely detached from reality: This thing is just not ready for everyday use. |
|
Similar to https://github.com/orgs/community/discussions/201439#discussioncomment-18048036 , I was using stacked PRs to indicate changes that depend upon one another. |
|
I'm not sure if this has been requested already, but it would be great to be able to edit metadata (reviewers, labels, etc.) for the entire stack with a single command. Also, for scripting purposes, some subcommand called |
|
I would really like an equivalent to graphite's split command, where a stack can be created by taking a single feature branch with multiple commits, and splitting those commits out into separate stacked branches |






Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Stacked pull requests break large changes into small, reviewable pull requests. They're an ordered series of pull requests that each represent focused layers of your change. With stacks, you can independently review and check each pull request, then merge everything together in one click. No more opening a single large pull request that takes forever to review, or splitting work across multiple branches you have to keep manually rebasing.
072926-gitub-tmp-pr-v08.mp4
With stacked pull requests, teams can:
main.And because stacked pull requests are built into GitHub, your existing reviews, checks, and merge requirements all work out of the box.
Get started with the CLI extension
Install the CLI extension and create your first stack in under a minute:
Create stacks from your terminal or github.com
Create a stack from github.com, the GitHub CLI, the GitHub mobile app, or with a coding agent such as GitHub Copilot using the gh-stack skill. Start with a branch and pull request for your first change. Then add branches and pull requests on top of it; each pull request targets the layer below it.
Stacks-Changelog-InLine-01-CLI.mp4
Review each layer independently
Open any pull request in the stack to review only the diff for that specific layer. Use the stack map at the top of the pull request to see how the change you're reviewing fits into the larger work. You and your teammates can each review different layers in parallel without blocking further work.
Merge everything in a single click
Merge the latest ready pull request to land it and every unmerged layer below it in one single operation. To land part of a stack, merge one or more lower layers—the pull requests above it stay open and automatically rebase and retarget. Your existing branch protections and required checks still govern what reaches
main.Stacks-Changelog-InLine-03-MergeBox.mp4
Find out more and share your feedback
Stacked pull requests are rolling out in public preview to all repositories over the coming days. Merge queue support for stacked pull requests is rolling out progressively over the coming weeks.
For more information, check out the stacked pull requests documentation, and share your feedback with us in the comments below!
All reactions