☰ Menu

29.09.2026 · Signal Titans Editorial

Git 2.56: Sichereres Staging bei Konflikten und schnellere Repository-Wartung

Git 2.56 führt ein gezieltes Konflikt-Staging ein, beschleunigt Merge-Base-Suchen und ermöglicht serverseitige Path-Walk-Repacks für große Repositories.

Verzahnte Datenblöcke werden vor einem weichgezeichneten Hintergrund getrennt und zu einem kleineren, geordneten Stapel komprimiert.

Git 2.56.0 wurde mit Änderungen veröffentlicht, die die Konfliktauflösung sicherer und die Repository-Wartung skalierbarer machen. Die Version führt einen gezielten Staging-Modus für aufgelöste Konflikte ein, verkürzt einige Merge-Base-Suchvorgänge und entfernt zwei Einschränkungen, die den Einsatz von platzsparenden Path-Walk-Repacks auf Repository-Servern bislang verhinderten.

Sichereres Konflikt-Staging

Der neue Modus git add --resolved staged nur Pfade, die derzeit als nicht zusammengeführt (unmerged) markiert sind. Bevor Änderungen in den Index übernommen werden, prüft er ausgewählte reguläre Dateien auf verbleibende Konfliktmarker. Wenn solche Marker gefunden werden, wird keine der betroffenen Dateien gestaged. Unabhängige Änderungen an getrackten Dateien bleiben unangetastet, wodurch das Risiko einer versehentlichen Aufnahme lokaler Arbeit durch breitere Kommandos wie git add -u oder git add -A reduziert wird.

Entwickler können ein Pathspec angeben, um den Vorgang einzugrenzen. Aufgelöste Löschungen und binäre Konflikte können weiterhin gestaged werden, da sie keine textuellen Marker enthalten. Der neue Modus lässt sich nicht mit den breiteren Modi "update" oder "all" kombinieren.

Frühzeitiger Merge-Base-Abbruch

Git verfolgt nun, ob sich noch Commits in der Merge-Base-Warteschlange befinden, die ausschließlich einer der beiden Seiten zugeordnet sind. Sobald eine exklusive Seite erschöpft ist, kann die Suche abbrechen, da kein weiterer gemeinsamer Treffpunkt mehr entstehen kann – und dies bei vollem Erhalt der Unterstützung für Historien mit mehreren gültigen Merge-Bases.

GitHub berichtet von erheblichen Geschwindigkeitsverbesserungen in evaluierten Repositories. In einem Fall sank die Zeit von 0,68 Sekunden auf 0,01 Sekunden, während Produktionsauswertungen in großen Monorepos viele Vorgänge um etwa das 70-Fache beschleunigten und im Durchschnitt eine 20-fache Verbesserung zeigten. Ein Linux-Kernel-Fall fiel von 167.441 Durchlaufschritten auf 3.887.

Kleinere serverseitige Repacks

Path-Walk-Repacking gruppiert Objekte nach ihrem Speicherort im Verzeichnisbaum, um bessere Delta-Beziehungen zu finden. In GitHubs Fluent-UI-Benchmark erzeugte es ein 164,4 MB großes Pack, verglichen mit 558,5 MB bei einem normalen bitmapped Repack – eine Reduktion von etwa 71 %. Git 2.56 macht diese Technik kompatibel mit Erreichbarkeits-Bitmaps und Delta-Islands und beseitigt zwei Hürden für die Einführung durch Repository-Hosts.

Die Funktion bleibt optional. Server-Betreiber können nun die Speichervorteile testen, ohne auf bitmap-gestützte Objektabfragen oder die Isolierungsregeln von Delta-Islands zu verzichten. Git aktiviert Path-Walk-Repacking nicht standardmäßig.

Weitere Workflow-Änderungen

Weitere Neuerungen umfassen den experimentellen Befehl git history drop, das Massenlöschen zusammengeführter Branches, automatische Bereinigungsoptionen für git bisect run sowie einen --linearize-Modus für den experimentellen Befehl git replay. Partial Clones können große, wiederherstellbare Blobs manuell über gefilterte Repacks entfernen, wobei derzeit nur blob:limit-Filter unterstützt werden und ein Promisor-Remote erforderlich ist.

Git 2.56 verbessert auch die Rename-Verfolgung in git log --follow über nicht-lineare Historien und löst mehrere Skalierungsprobleme. Beispiele: Ein pfadbegrenzter Diff auf einem Chromium-Checkout verbesserte sich von etwa acht Minuten auf 0,07 Sekunden, und Reftable-Tombstone-Tests fielen von ca. 13 Sekunden auf 0,2 Sekunden.

KI-generierte redaktionelle Illustration; kein Dokumentarfoto.

Quelle: Highlights from Git 2.56