Das Open-Source-Projekt Git hat am 28. September 2026 Version 2.56.0 veröffentlicht. Dazu trugen mehr als 104 Personen bei, darunter 39 neue Mitwirkende. Die Version konzentriert sich darauf, das Risiko von Merge-Fehlern zu verringern und Vorgänge zu beschleunigen, auf die große Repositories und Dienste zum Hosten von Quellcode angewiesen sind.
Konflikte vorbereiten, ohne andere Änderungen anzutasten
Git 2.56 führt den Modus git add --resolved ein, um nur Dateien zu verarbeiten, die sich in einem Konfliktzustand befanden. Anders als Befehle wie git add -u versucht der neue Modus nicht, alle geänderten versionierten Dateien hinzuzufügen, wodurch lokale Änderungen geschützt werden, die nicht mit dem Merge-Vorgang zusammenhängen.
Vor der Vorbereitung prüft Git nicht zusammengeführte Textdateien auf verbliebene Konfliktmarkierungen. Findet es in einer angegebenen Datei eine solche Markierung, lässt es den Index unverändert, anstatt einen Teil des Vorgangs vorzubereiten. Der Vorgang kann mithilfe eines Pathspec eingeschränkt werden, während Löschungen und binäre Konflikte normal verarbeitet werden, da sie keine Textmarkierungen enthalten.
Die Suche nach Merge-Basen beschleunigen
Die Version verbessert den Algorithmus zur Suche nach den besten gemeinsamen Vorfahren von Commits. Dieser Vorgang wird von Merges, Drei-Wege-Diffs und Vergleichen von Pull Requests verwendet. Git beendet die Suche nun, sobald eine der exklusiven Seiten in der Suchwarteschlange erschöpft ist, da dann keine neue Merge-Basis mehr auftauchen kann.
In einem bestimmten Zustand eines großen Monorepositories senkte die Änderung die Laufzeit von 0,68 Sekunden auf 0,01 Sekunden. Produktivitätstests auf zwei großen Repositories ergaben in einem Fall eine Verbesserung um etwa das 70-Fache und im anderen eine durchschnittliche Verbesserung um nahezu das 20-Fache. Außerdem sank git merge-base --all v4.8 v4.9 in einem mit dem Linux-Kernel verbundenen Fall von 167.441 Schritten und 0,29 Sekunden auf 3.887 Schritte und 0,01 Sekunden.
Kleinere Repack-Vorgänge für Hosting-Dienste
Git 2.56 beseitigt zwei Hindernisse für den Einsatz pfadbasierter Repack-Vorgänge. Dabei werden eng beieinanderliegende Dateiobjekte im Repository-Baum zusammengefasst, um ihre Komprimierung zu verbessern. In einem Test mit einer Kopie des Fluent-UI-Repositories sank die Größe des Speicherpakets von 558,5 Megabyte bei herkömmlichem Repack auf 164,4 Megabyte mit --path-walk, also um etwa 71 %.
Dieser Ansatz ist nun mit Reachability-Maps und Difference Islands kompatibel. Dadurch können Hosting-Dienste Einsparungen beim Speicherplatz bewerten und gleichzeitig ihre bestehenden Dienst- und Isolationsmechanismen beibehalten. Er ist jedoch nicht standardmäßig aktiviert und stellt keine automatische Umstellung für alle Repositories dar.
Weitere Werkzeuge und praktische Verbesserungen
- Der experimentelle Befehl git history drop ermöglicht das Löschen eines Commits und das erneute Abspielen der nachfolgenden Commits darauf; die Einschränkungen bei Konflikten, Root-Commits und Merge-Vorgängen bleiben bestehen.
- Der Befehl git refs vereinheitlicht das Erstellen, Aktualisieren, Löschen und Umbenennen von Referenzen und unterstützt Compare-and-Swap-Schutz anhand alter Werte.
- git branch --delete-merged ermöglicht das Löschen zusammengeführter Branches in großen Mengen anhand von Tracking-Branches, mit einer Vorschauoption und dem Schutz bestimmter Branches.
- git bisect run --reset-when-found setzt den Zustand nach dem Auffinden des fehlerverursachenden Commits automatisch zurück.
- Mit git repack lassen sich große wiederhergestellte Binärobjekte in partiellen Klonen manuell entfernen. Sie bleiben bei Bedarf vom vertrauenswürdigen Server abrufbar.
- git log --follow verbessert die Verfolgung von Pfadumbenennungen in einem nichtlinearen Verlauf und verbessert außerdem die Darstellung von Diagrammen mit mehreren Wurzeln.
Warum ist diese Version wichtig?
Der praktische Wert von Git 2.56 beschränkt sich nicht auf neue Befehle. Die Version behebt unmittelbare Reibungspunkte in der Arbeit von Entwicklern und Repository-Managern. Der Modus git add --resolved verringert die Wahrscheinlichkeit, unbeabsichtigte Änderungen einzubeziehen, während die Verbesserungen bei Merge-Basen und beim Repack die Zeit- und Speicherkosten großer Repositories adressieren. Einige Werkzeuge bleiben jedoch experimentell oder manuell, insbesondere die Befehle zur Verlaufsverwaltung und zur Bereinigung von Objekten in partiellen Klonen. Daher sollten sie nicht als automatische Richtlinien oder uneingeschränkte Ersatzlösungen für bestehende Arbeitsabläufe betrachtet werden.
Die Version zeigt, dass das Git-Projekt die Leistung weiterhin auf Ebene der Algorithmen und internen Strukturen verbessert und nicht nur Befehle für Endnutzer hinzufügt. Die Versionsdetails empfehlen, die vollständigen Git-2.56-Versionshinweise zu konsultieren, um die übrigen Änderungen zu prüfen, bevor experimentelle Funktionen in Produktionsumgebungen eingesetzt werden.