Git 2.26.0 bietet eine echte Inhaltssuche, einige experimentelle Funktionen und vieles mehr

Git-2-26

Die neue Version des Versionskontrollsystems Git, Git 2.26.0, ist jetzt verfügbar und bietet zahlreiche neue Funktionen , experimentelle Unterstützung und vor allem Optimierungen. Für alle, die Git noch nicht kennen: Es ist eines der beliebtesten, zuverlässigsten und leistungsstärksten Versionskontrollsysteme und bietet flexible, nichtlineare Entwicklungswerkzeuge, die auf Branching und Merging basieren.

Um die Integrität der Historie zu gewährleisten und nachträglichen Änderungen vorzubeugen, wird in jedem Commit der implizite Hash der gesamten vorherigen Historie verwendet; außerdem ist es möglich, die Entwickler einzelner Tags und Commits digital zu signieren.

Im Vergleich zur vorherigen Version wurden in der neuen Version 504 Änderungen vorgenommen, die unter Beteiligung von 64 Entwicklern erarbeitet wurden, von denen 12 zum ersten Mal an der Entwicklung beteiligt waren.

Git 2.26.0 Highlights

Diese neue Version stellt standardmäßig auf Version 2 des Git-Kommunikationsprotokolls um , das für die Remote-Verbindung eines Clients zu einem Git-Server verwendet wird. Version 2 zeichnet sich dadurch aus, dass sie das Filtern von Branches und Tags serverseitig ermöglicht und dem Client eine komprimierte Liste von Links zurückgibt.

Eine weitere wichtige Neuerung ist die Möglichkeit, dem Protokoll neue Funktionen hinzuzufügen, sobald diese im Toolkit verfügbar sind. Der Client-Code bleibt mit dem vorherigen Protokoll kompatibel und funktioniert weiterhin sowohl mit neuen als auch mit alten Servern. Er wechselt automatisch zur ersten Version, falls der Server die zweite nicht unterstützt.

Die Option "–Show-Scope« wurde dem Befehl hinzugefügt «git config", was vereinfacht die Identifizierung des Ortes, an dem bestimmte Konfigurationen definiert sind.
Mit Git können Sie Konfigurationen an verschiedenen Stellen definieren: im Repository (.git / info / config) im Benutzerverzeichnis (~ / .gitconfig) in der systemweiten Konfigurationsdatei (/ etc / gitconfig) sowie über Befehlszeilenoptionen und Umgebungsvariablen.

Beim Ausführen von ` git config` ist es oft schwierig zu erkennen, wo genau die gewünschte Konfiguration definiert ist. Die Option ` --show-origin` sollte dieses Problem lösen, zeigt aber nur den Pfad zur Konfigurationsdatei an. Das ist zwar hilfreich, wenn man die Datei bearbeiten möchte, aber nicht, wenn man den Wert über `git config` mit den Optionen `--system`, `--global` oder `--local` ändern will.

Andererseits wird in der Ankündigung dieser neuen Version erwähnt, dass die Erweiterung der experimentellen Unterstützung für partielle Klone fortgesetzt wurde , wodurch die Übertragung nur eines Teils der Daten und das Arbeiten mit einer unvollständigen Kopie des Repositorys ermöglicht wird.

Die neue Version fügt einen neuen Befehl hinzu, "git sparse-checkout add" , mit dem Sie einzelne Verzeichnisse hinzufügen können, um die " checkout "-Operation nur auf einen Teil des Arbeitsverzeichnisses anzuwenden, anstatt alle diese Verzeichnisse gleichzeitig mit dem Befehl " git sparse-checkout set " aufzulisten.

Die Leistung des Befehls " git grep ", der sowohl zum Durchsuchen des aktuellen Inhalts des Repositorys als auch historischer Revisionen verwendet wird, erhöht sich deutlich.

Um die Suche zu beschleunigen, war das Durchsuchen des Arbeitsverzeichnisses mit mehreren Threads („ git grep --threads “) erlaubt, die Suche in historischen Revisionen jedoch nur mit einem Thread. Diese Einschränkung wurde nun aufgrund der Implementierung der Möglichkeit zur Parallelisierung von Leseoperationen im Objektspeicher aufgehoben.

Standardmäßig ist die Anzahl der Threads gleich der Anzahl der CPU-Kerne, was in den meisten Fällen keine explizite Konfiguration der Option " --threads " mehr erfordert.

Es wurde Unterstützung für die automatische Vervollständigung von Unterbefehlseingaben , Pfaden, Links und anderen Argumenten des Befehls "git worktree" hinzugefügt , wodurch das Arbeiten mit mehreren Arbeitskopien des Repositorys möglich ist.

Wir finden außerdem die neue Version des fsmonitor-watchman-Skripts , das die Integration mit dem Facebook-Watchman-Mechanismus ermöglicht , um die Nachverfolgung von Dateiänderungen und das Auftreten neuer Dateien zu beschleunigen. Nach dem Git-Update muss der Hook im Repository ersetzt werden.

Wenn Sie mehr über diese Neuerscheinung erfahren möchten, können Sie den Originalartikel unter folgendem Link einsehen.


Als bevorzugte Quelle in Google hinzufügen