github / github/gh-stack

Add --rebase-on-conflict flag to `gh stack sync` to auto-run rebase on conflicts

未关闭
#431 0 条评论 0 个 reaction 已指派 1 人 已被 @skarim 认领 在 GitHub 查看
feature request topic: cli - sync
主要语言
Go
星标
1.5k
派生
70
平均合并
1 天 8 小时
30 天内合并 PR
7

描述

Summary

Add a flag to gh stack sync so that when a conflict is detected it automatically runs gh stack rebase (instead of instructing the user to run rebase manually).

Background / motivation

Currently when users run `gh stack sync` and it encounters a conflict the CLI prints an instruction to run `gh stack rebase`. Some users would prefer a single-command flow that attempts a rebase automatically when a conflict occurs to avoid typing two commands.

Proposed behavior

- Add an explicit flag to `gh stack sync`, for example `--rebase-on-conflict` (alternative names: `--rebase-if-conflict`, `--auto-rebase`).
- Default behavior of `gh stack sync` remains unchanged (safe, no automatic rebase).
- When the flag is provided and sync detects a conflict, `gh stack sync` should automatically invoke the rebase flow (equivalent to running `gh stack rebase`).
- The flag signals that the user consents to the potential rebase-related outcomes (e.g., temporary detached HEAD during an in-progress rebase), so the command can proceed without an additional prompt.
- The command should preserve non-interactive behavior where appropriate (i.e., suitable for scripts). If prompts are required during rebase, consider a complementary `--yes` or `--no-interactive` option, or clearly document the interaction expectations.

Acceptance criteria

- `gh stack sync --rebase-on-conflict` will run a rebase automatically if a conflict is encountered during sync.
- The default `gh stack sync` remains unchanged and does not perform automatic rebases.
- Documentation for `gh stack sync` includes the new flag and describes its behavior and risks.

Example

- Normal: `gh stack sync`
- With flag: `gh stack sync --rebase-on-conflict`

Notes / implementation hints

- Consider the exact flag name and whether a short alias (e.g., `-r`) is appropriate.
- Ensure the UX communicates that the user opted in to automatic rebase behavior and any potential consequences.
- Make sure the behavior is deterministic for CI/automation usage (document or provide an explicit non-interactive mode).

[View original Slack conversation](https://github.slack.com/archives/C01SKER9S1G/p1786480849881969?thread_ts=1786480849.881969&cid=C01SKER9S1G)

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。