Veröffentlichung des verteilten versionierten Systems . Git gehört zu den beliebtesten, zuverlässigen und leistungsstärksten Versionsverwaltungssystemen und bietet flexible Mittel für nicht-lineare Entwicklungen, die auf dem Branching und Merging von Zweigen basieren. Um die Integrität der Historie und die Widerstandsfähigkeit gegenüber nachträglichen Änderungen zu gewährleisten, werden alle vorherigen Historien in jedem Commit implizit gehasht, und es ist auch möglich, digitale Signaturen für bestimmte Tags und Commits der Entwickler zu verwenden.
Im Vergleich zur vorherigen Version wurden in die neue Version 537 Änderungen integriert, an denen 71 Entwickler beteiligt waren, von denen 19 zum ersten Mal an der Entwicklung mitwirkten. Die wichtigsten :
- Die im vorherigen Release standardmäßig aktivierte Funktion wurde zurückgenommen. des Kommunikationsprotokolls Git, das für die Remote-Verbindung des Clients zum Git-Server verwendet wird. Das Protokoll wird derzeit nicht als bereit für die Standardverwendung angesehen, da einige problematische Aspekte identifiziert wurden, die einer gesonderten Prüfung bedürfen.
- Ein Satz von Optionen zur Konfiguration der SSL-Verbindung beim Zugriff über einen Proxy wurde hinzugefügt.
- Die Informationen, die bei der Verwendung der Transformationsfilter „clean“ und „smudge“ ausgegeben werden, wurden erweitert. Jetzt wird beispielsweise das Objekt , in dem der konvertierte Blob erscheint, angezeigt.
- Um Verwirrungen zu vermeiden, wird nun im Befehl „git describe“ immer der erweiterte Ausgabemodus („—long“) verwendet, wenn ein mit dem Commit verbundenes ersetztes Tag festgestellt wird (zuvor wurde ein signiertes oder annotiertes Tag, das den Commit beschrieb, auch dann ausgegeben, wenn es umbenannt oder in der Hierarchie „refs/tags/“ verschoben wurde, und der Befehl „git show tag^0“ funktionierte nicht wie erwartet – „refs/tags/tag“ wurde nicht gefunden oder es wurde sogar ein anderer Tag angezeigt).
- Beim Ausführen von „git pull“ wird jetzt eine Warnung ausgegeben, wenn die Konfigurationsvariable pull.rebase nicht explizit festgelegt ist und die Optionen „—[no-]rebase“ oder „—ff-only“ nicht verwendet werden. Um die Warnung für diejenigen, die keinen Rebase durchführen möchten, zu unterdrücken, kann der Wert der Variable auf „false“ gesetzt werden.
- Die Optionen von „git pull“, die mit „git fetch“ gemeinsam sind, wurden überprüft. Früher nicht erwähnte ähnliche Optionen wurden dokumentiert, und die über „git fetch“ fehlenden Optionen wurden übertragen.
- Dem Befehl „git rebase“ wurde die Option „—no-gpg-sign“ hinzugefügt, um die Einstellung „commit.gpgSign“ zu überschreiben.
- In „git format-patch“ wurde die Möglichkeit hinzugefügt, die Kopfzeilen „From:“ und „Subject:“ unverändert anzuzeigen, ohne dass Zeichen, die in der ASCII-Codierung fehlen, umgewandelt werden.
- Die Option „—show-pulls“ wurde zu „git log“ hinzugefügt, um nicht nur Commit-Änderungen, sondern auch den Merge-Commit dieser Änderungen aus einem separaten Branch anzuzeigen.
- Die Verarbeitung der interaktiven Eingabe wurde in allen Komponenten vereinheitlicht und der Aufruf von fflush() wurde nach der Anzeige der Eingabeaufforderung, aber vor dem Lesevorgang hinzugefügt.
- In „git rebase“ ist es nun möglich, alle lokalen Commits erneut anzuwenden, auch wenn einige davon zuvor an das Upstream gesendet wurden, ohne zuvor einen „checkout“ auszuführen.
- Der Wert der Konfigurationsvariable 'pack.useSparse' wurde standardmäßig auf 'true' geändert, um die zuvor als experimentell betrachteten Optimierungen zu aktivieren.
- In „git merge“ wurde die Option „—autostash“ hinzugefügt.
- Die Benutzeroberfläche für „sparse-checkout“ wurde verbessert.
- Zu „git update-ref —stdin“ wurden mehrere neue Aktionen hinzugefügt,
die es ermöglichen, Transaktionen zum Aktualisieren von Referenzen direkt zu steuern, beispielsweise zur Umsetzung einer zweistufigen atomaren Aktualisierung von Referenzen in mehreren Repositories. - Es wurden userdiff-Vorlagen für Markdown-Dokumente hinzugefügt.
- Die Einschränkung zum Ausschließen aller Pfade in den sparse-checkout-Vorlagen, die zu einem leeren Arbeitsverzeichnis führen, wurde aufgehoben.
- Der Befehl „git restore —staged —worktree“ verwendet jetzt standardmäßig den Inhalt aus dem Branch „HEAD“ anstelle einer Fehlermeldung.
- Die Umstellung auf den Hashalgorithmus SHA-2 anstelle von SHA-1 wurde fortgesetzt.
- Der Code für die Interaktion mit GnuPG wurde überarbeitet.
Quelle: opennet.ru
