Git 2.56 steht kurz vor der Veröffentlichung, und die Verantwortlichen blicken bereits zu Git 3.0. Die nächste Version des Source-Code-Managers wird eine größere Änderung bringen: SHA-256-Hashes werden anstelle von SHA-1 als Standard verwendet, das seit Beginn unterstützt wird. Der Wechsel könnte die Kompatibilität beeinträchtigen, und die größte Frage ist, ob GitHub dafür bereit sein wird.
Git 2.56 ist bald da
Die 700 oder mehr Nicht-Merge-Commits in der 2.56-Release-Candidate-Version umfassen einen neuen Drop-Subcommand für Git’s experimentelles History-Toolbox, Bugfixes und kleinere Verbesserungen der Benutzerfreundlichkeit. Der Drop-Befehl ermöglicht es einem Benutzer, einen Commit aus der Historie eines Branches zu entfernen und alle nachfolgenden Commits erneut abzuspielen.
Die neue Option –delete-merged für git branch entfernt lokale Branches, die in ihre Remote-Tracking-Branches gemerged wurden. Git add hat nun einen –resolved-Flag, der nur Dateien mit aufgelösten Merge-Konflikten hinzufügt.
Der SHA-256-Wechsel
Der SHA-1-Hash ist seit einiger Zeit als schwach bekannt. Er identifiziert jede Datei, jeden Verzeichnisbaum und jedes Commit in einem Repository, und seine Schwäche bedeutet, dass es theoretisch möglich wäre, die Historie eines Repositorys zu verändern, ohne dass dies entdeckt wird.
Git hat seit Jahren Schutzmaßnahmen gegen die bekannten Angriffe auf SHA-1 eingebaut. Wenig Leute scheinen derzeit ernsthaft besorgt über kompromittierte Repositories zu sein. Dennoch macht es Sinn, auf SHA-256 umzusteigen.
„Es ist noch nicht klar, wann GitHub diese Unterstützung hinzufügen wird, aber es ist erwähnenswert, dass Brian M. Carlson, ein GitHub-Mitarbeiter und ein wichtiger Entwickler hinter dem SHA-256-Übergang, auf Hamanos Frage antwortete, dass Neuigkeiten zu diesem Thema folgen würden und dass die nächste Version 3.0 sein könnte.“
GitHubs fehlende Unterstützung
Nicht-experimentelle SHA-256-Unterstützung gibt es in Git seit der Veröffentlichung von Version 2.42 im Jahr 2023. GitLab hat diese Funktion seit 2024, und auch Forgejo bietet sie an. GitHub ist das fehlende Puzzlestück.
Die Veröffentlichung einer Version von Git, die GitHub-inkompatible Repositories erstellt, ist ein besorgniserregender Gedanke. Brian M. Carlson, ein GitHub-Mitarbeiter, hat gesagt, dass Neuigkeiten zu diesem Thema folgen würden und dass 3.0 möglicherweise die beste Wahl sei.
Weitere Änderungen in der Pipeline
Carlson möchte außerdem das Verhalten von Git so ändern, dass es nur noch Kleinbuchstaben für Objekt-IDs akzeptiert. Git hat hexadezimale Zahlen immer als Kleinbuchstaben-Strings behandelt, akzeptierte aber auch Großbuchstaben-IDs. Zwei IDs, die unterschiedlich aussehen, wie f00f00 und F00F00, sind tatsächlich identisch.
Aus dieser Mehrdeutigkeit sind Fehler und Sicherheitslücken entstanden. Carlson möchte Git so ändern, dass es nur noch Kleinbuchstaben-IDs akzeptiert. Diese Änderung sollte nicht zu viele Benutzer betreffen, aber es ist fast sicher, dass irgendwo jemand auf das aktuelle Verhalten angewiesen ist.
Was kommt als Nächstes
Anfang September fragte Git-Maintainer Junio Hamano die Community, was die nächste Version bringen sollte. Soll es die lang erwartete Git-Version 3.0 sein, die das Jahr mit einem Höhenpunkt abschließt? Oder besteht die Notwendigkeit für eine oder mehrere 2.x-Versionen vor 3.0?
Die Inkompatibilitäten in 3.0 könnten manche Benutzer zögern lassen, zu aktualisieren. Der Wechsel zu SHA-256 ist die bedeutendste dieser Inkompatibilitäten. Zu den anderen Änderungen, die für 3.0 warten, gehört der Wechsel zum „reftable“-Mechanismus, der verändert, wie Git Referenzen auf Branches, Tags und Remotes speichert.
Der Veröffentlichungsplan
| Veröffentlichung | Status |
|---|---|
| Git 2.56 | Release Candidate |
| Git 3.0 | Ausstehend |
2.56 zeigt Anzeichen dafür, dass ein Projekt erhebliche Arbeiten zurückhält. Der vollständige SHA-256-Wechsel und die anderen ausstehenden Änderungen werden zu einem späteren Zeitpunkt implementiert. Ob GitHub dafür bereit ist, bleibt die offene Frage.
Im Moment können Nutzer davon ausgehen, dass 2.56 gegen Ende September erscheint, wobei der vollständige SHA-256-Wechsel von der GitHub-Komponente abhängt.
Quelle: „Freude auf Git 2.56 – und 3.0“, lwn.net.
Das Notizbuch abonnieren.
Die besten Geschichten des Tages und jedes neue Urteil, in klarem Deutsch, um sieben im Postfach. Eine Mail am Tag, nicht mehr.

