github / github/gh-stack

No non-interactive way to select a stack when the branch belongs to several (e.g. the trunk)

Open
#415 1 comment 0 reactions 0 assignees View on GitHub
feature request topic: cli - view
Dominant language
Go
Stars
1.5k
Forks
70
Avg merge
1d 8h
Merged PRs (30d)
7

Description

## Summary

When the current branch belongs to more than one stack — most commonly the trunk, which is the base of every stack in the repo — `gh stack view` fails and offers no non-interactive way out:

```
$ gh stack view --short
✗ branch "main" belongs to multiple stacks; use an interactive terminal to select one
```

There is no `--stack` flag. Combined with `gh stack view` silently discarding positional arguments (#414), there is currently **no way at all** to view a specific stack non-interactively.

## Why this matters

Two stacks off a shared trunk is the normal state for anyone working on more than one change at a time, not an edge case — and `main` is in that position permanently, so any script or agent that starts from the default branch hits this immediately.

"Use an interactive terminal" is not available in CI, in a shell script, or to an automated agent. The only workaround is to `gh stack checkout ` first purely to move onto a branch in the desired stack, which mutates the working tree just to perform a read.

## Reproduction

```bash
# create two stacks that both base off main
git switch main
gh stack view --short # -> "belongs to multiple stacks; use an interactive terminal"
```

Public repo with two stacks off a shared `main`: https://github.com/xn/gh-stack-repro

## Expected

A `--stack ` flag on `view` (and anywhere else this ambiguity can arise), so the stack can be named explicitly without changing the checked-out branch.

## Environment

- `gh` 2.97.0
- `gh-stack` v0.1.0
- git 2.50.1
- macOS 26.4.1, darwin/arm64

Contributor guide

Open the contributing guide

Research direction

Start at the `gh stack view` entry point and trace how it handles multiple stacks, interactive selection, and the discarded positional argument; compare this with the existing `gh stack checkout ` selection behavior. Done means `gh stack view --stack ` can select a stack from a shared branch without changing the checked-out branch, including the reproduced `main` scenario.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
cli
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
64/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.