No non-interactive way to select a stack when the branch belongs to several (e.g. the trunk)
- 主要语言
- Go
- 星标
- 1.5k
- 派生
- 70
- 平均合并
- 1 天 8 小时
- 30 天内合并 PR
- 7
描述
## 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
贡献指南
调研方向
从 `gh stack view` 入口开始,跟踪它如何处理多个 stack、交互式选择以及被丢弃的位置参数;将其与现有的 `gh stack checkout ` 选择行为进行比较。完成标准是:`gh stack view --stack ` 可以从共享分支中选择一个 stack,同时不改变已签出的分支,包括已复现的 `main` 场景。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- go
- 领域
- cli
- Issue 类型
- 功能
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 64/100