Veröffentlichung des verteilten versionierten Systems . Git ist eines der beliebtesten, zuverlĂ€ssigsten und leistungsstĂ€rksten Versionskontrollsysteme, das flexible Mittel fĂŒr die nichtlineare Entwicklung bereitstellt, die auf Branching und Merging basieren. Zur GewĂ€hrleistung der IntegritĂ€t der Historie und der WiderstandsfĂ€higkeit gegenĂŒber nachtrĂ€glichen Ănderungen wird die gesamte vorherige Historie in jedem Commit implizit gehasht. Zudem ist es möglich, digitale Signaturen fĂŒr bestimmte Tags und Commits durch die Entwickler zu verifizieren.
Im Vergleich zur vorherigen Veröffentlichung wurden in die neue Version 505 Ănderungen aufgenommen, die von 77 Entwicklern vorbereitet wurden, von denen 26 erstmals an der Entwicklung teilgenommen haben. Die wichtigsten :
- Die experimentellen Befehle âgit switchâ und âgit restoreâ wurden eingefĂŒhrt, um die wenig miteinander verbundenen Funktionen von âgit checkoutâ aufzuteilen, wie z. B. das Verwalten von Branches (Wechseln und Erstellen) sowie das Wiederherstellen von Dateien im Arbeitsverzeichnis (âgit checkout $commit â $filenameâ) oder direkt im Staging-Bereich (ââstagingâ, kein Ăquivalent in âgit checkoutâ). Es ist erwĂ€hnenswert, dass âgit restoreâ im Gegensatz zu âgit checkoutâ untracked Dateien aus den wiederherzustellenden Verzeichnissen entfernt (ââno-overlayâ ist standardmĂ€Ăig aktiv).
- Die Option âgit merge âquitâ wurde hinzugefĂŒgt, die Ă€hnlich wie ââabortâ den Merge-Prozess stoppt, dabei jedoch das Arbeitsverzeichnis unangetastet lĂ€sst. Diese Option kann nĂŒtzlich sein, wenn einige der Ănderungen, die wĂ€hrend eines manuellen Merges vorgenommen wurden, lieber als separater Commit erfasst werden sollten.
- Die Befehle âgit cloneâ, âgit fetchâ und âgit pushâ berĂŒcksichtigen nun die vorhandenen Commits in den verknĂŒpften Repositories ();
- die Optionen âgit blame âignore-revâ und ââignore-revs-fileâ, die es ermöglichen, Commits zu ĂŒberspringen, in denen unwesentliche Ănderungen vorgenommen wurden (z. B. Formatierungsanpassungen);
- Die Option âgit cherry-pick âskipâ wurde hinzugefĂŒgt, um einen konfliktbehafteten Commit zu ĂŒberspringen (vergleichbar mit der gespeicherten Sequenz âgit reset && git cherry-pick âcontinueâ).
- Eine Einstellung fĂŒr status.aheadBehind wurde hinzugefĂŒgt, die die Option âgit status â[no-]ahead-behindâ dauerhaft festlegt.
- Ab dieser Version berĂŒcksichtigt âgit logâ standardmĂ€Ăig die Ănderungen, die im mailmap vorgenommen wurden, Ă€hnlich wie es bereits bei git shortlog der Fall ist.
- Die Aktualisierung des in Version 2.18 experimentell eingefĂŒhrten Commit-Graph-Caches (core.commitGraph) wurde erheblich beschleunigt. Auch git for-each-ref wurde bei der Verwendung mehrerer Vorlagen beschleunigt, und die Anzahl der auto-gc-Aufrufe in âgit fetch âmultipleâ wurde reduziert.
- âgit branch âlistâ zeigt nun immer den detached HEAD ganz oben in der Liste an, unabhĂ€ngig von der Locale.
Quelle: opennet.ru
