github / github/gh-stack

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

Abierto
#431 0 comentarios 0 reacciones 1 asignado Reclamado por @skarim Ver en GitHub
feature request topic: cli - sync
Lenguaje dominante
Go
Estrellas
1.5k
Forks
70
Merge medio
1 d 8 h
PR fusionados (30 d)
7

Descripción

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)

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.