Suche
Versionsverwaltung mit verbesserter Sicherheit und Konfiguration

Git 2.13 ist erschienen

Mascha Schnellbacher

© https://git-scm.com/

Das quelloffene, verteilte Versionsverwaltungssystem Git ist in Version 2.13 erschienen. Zu den wichtigsten neuen Features zählen der Schutz vor Kollisionen in SHA-1 und eine bedingte Konfiguration.

Nach rund drei Monaten Entwicklungszeit ist nun Git 2.13 erschienen. Die neue Version des Versionsverwaltungssystems bringt neben neuen Features und Bug-Fixes aber auch eine Sicherheitswarnung mit, auf die wir zuerst eingehen wollen.

Für alle, die einen eigenen Git-Hosting-Server ausführen, behebt Git 2.13 eine Schwachstelle im git shell-Programm, in dem ein nicht vertrauenswürdiger Git-Nutzer möglicherweise Shell-Befehle auf einem Remote-Host ausführen kann. Das wirkt sich aber nur auf User aus, die einen Hosting-Server betreiben und git shell speziell konfiguriert haben. In dieser Ankündigung gibt’s genauere Details.

Git 2.13 – das ist neu

Vor kurzem ist es Sicherheitsforschern gelungen, Kollisionen in SHA-1 herbeizuführen. Da das auch zum Problem für Git-Nutzer werden könnte, ist Git 2.13 mit SHA-1-Kollisionserkennung ausgestattet. Der dazu nötige Code ist in Git inkludiert, sodass keine zusätzlichen Dependencies installiert werden müssen. Die Implementation ist zwar langsamer als die Alternativen, hat aber in der Praxis eine vernachlässigbare Wirkung auf die Gesamtzeit der meisten Git-Operationen.

Zusätzlich arbeitet das Git-Team an einem Übergangsplan, um die Codebasis auf neue Hash-Funktionen vorzubereiten, die schließlich die Nutzung von stärkeren Hash-Algorithmen in Git ermöglichen sollen.

Des Weiteren wurden die Pathspecs verbessert, ein Muster zum Matchen von Pfaden in Git. So bringt Git 2.13 ^ als Synonym für das Ausrufezeichen hinzu, sodass der ursprüngliche :(exclude)– Befehl auf diese Weise ohne Shell-Quoting ausgeführt werden kann. Zudem wird das attr-Token eingeführt, dass es ermöglicht, Dateien auf Grundlage ihres gitattributes-Wert auszuwählen. Ein Überblick über alle Pathspecs findet sich im Glossar.

Zudem sind mit Git 2.13 bedingte Konfigurationen möglich: Muss ein Konfigurationswert für unterschiedliche Repositories geändert werden, funktioniert das nun über Conditional Configuration Includes. Die entsprechenden Konfigurationsoptionen werden automatisch angewendet, wenn man sich in einem Repository befindet, das im work– oder play-Verzeichnis liegt.

Daneben gab es noch eine Reihe weiterer Neuerungen, so ist zum Beispiel --decorate=auto jetzt die Voreinstellung für git log. Wird die Ausgabe an das Endgerät des Benutzers gesendet, werden Commits, die direkt von einem Branch oder Tag angezeigt werden, mit dem Namen des Branchs „verziert“.

Auch git branch, git tag und git for-each-ref haben die --no contains-Option gelernt, um die bestehende --contains-Option anzupassen. Somit lässt sich herausfinden, welche Tags oder Branches keinen bestimmten Bug (oder Bug-Fix) besitzen. Weitere Informationen zu allen Neuerungen und Änderungen in Git 2.13 – es gab immerhin über 700 Commits – finden sich im zugehörigen Blogpost sowie in den Release Notes.

Verwandte Themen:

Geschrieben von
Mascha Schnellbacher
Mascha Schnellbacher
Mascha Schnellbacher studierte Buchwissenschaft und Deutsche Philologie an der Johannes Gutenberg-Universität Mainz. Seit Juni 2015 arbeitet sie als Redakteurin in der Redaktion des Entwickler Magazins bei Software & Support Media. Zuvor war sie als Lektorin in einem Verlag sowie als freie Editorin tätig.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.