github / github/gh-stack

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

Đang mở
#431 0 bình luận 0 reaction 1 người được giao Được @skarim nhận Xem trên GitHub
feature request topic: cli - sync
Ngôn ngữ chính
Go
Star
1.5k
Fork
70
Merge trung bình
1 ngày 8 giờ
Pull request đã merge (30 ngày)
7

Mô tả

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)

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.