Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Feature request: support merge-based stack synchronization without force-pushing

Offen
#445 0 Kommentare 12 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
35/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Ruhig
Tech-Stack
git, github, go
Bereich
cli, devtools

Rechercherichtung

Beginne damit, den bestehenden Workflow "Rebase stack" und den Stack-Synchronisierungsbefehl in der CLI nachzuverfolgen. Ermittle, wie Branch-Aktualisierungen, Force-Pushes, Konflikte, Genehmigungen, Checks und geschützte Branches behandelt werden. Als abgeschlossen gilt, dass ein auswählbarer, auf Merge basierender Modus Branches in Stack-Reihenfolge synchronisiert, ohne Force-Pushes auszuführen, während bestehende, auf Rebase basierende Stacks weiterhin funktionieren.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

feature request topic: rebase alternative

Summary

Please add an option for stacked pull requests to synchronize branches using merge commits instead of rebasing and force-pushing branch history.

Motivation

Our organization does not allow force-pushes because they rewrite branch history and can make audit trails, approvals, and incident investigation more difficult. The current "Rebase stack" workflow is therefore incompatible with our repository policies.

Proposed behavior

Add a merge-based synchronization mode for stacks:

  • When a parent branch changes, merge the parent into each child branch in stack order.
  • Preserve existing commits and branch history.
  • Do not force-push rewritten branch history.
  • Keep the existing rebase behavior as the default or as a selectable repository/stack setting.
  • Make the selected synchronization mode visible in the stack UI and CLI.
  • Respect branch protection and merge-commit policies.

Example

Given:

main
└── feature-a
    └── feature-b

When main advances, merge main into feature-a, then merge the updated feature-a into feature-b, instead of rebasing both branches and force-pushing them.

Acceptance criteria

  • A stack can be configured to use merge-based synchronization.
  • Synchronizing the stack does not require force-pushing any branch.
  • Existing approvals and checks are handled consistently with the merge-based history.
  • Conflicts are reported per branch and can be resolved through the normal workflow.
  • The behavior works with protected branches that block force-pushes.
  • Existing rebase-based stacks continue to work unchanged.

Related issues

  • #268: Stacked PR cannot be merged into a merge-queue branch
  • #442: gh stack sync pushed a stack branch's merge commit directly onto the trunk branch
Vorherrschende Sprache
Go
Sterne
1.5k
Forks
73
Ø Merge
1 T. 8 Std.
Gemergte PRs (30 T.)
7

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus github/gh-stack

Alle Issues in github/gh-stack

Ähnliche Issues

Weitere Issues zu Go

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.