Veröffentlichung des verteilten Systems zur Verwaltung von Quelltexten . Git ist eines der beliebtesten, zuverlĂ€ssigsten und leistungsstĂ€rksten Versionskontrollsysteme, das flexible Werkzeuge fĂŒr die nichtlineare Entwicklung bietet, basierend auf Abzweigung und ZusammenfĂŒhrung von Zweigen. Um die IntegritĂ€t der Historie und die WiderstandsfĂ€higkeit gegen nachtrĂ€gliche Ănderungen zu gewĂ€hrleisten, wird eine implizite Hashierung der gesamten vorherigen Historie in jedem Commit verwendet, auch die Authentifizierung von digitalen Signaturen der Entwickler fĂŒr bestimmte Tags und Commits ist möglich.
Im Vergleich zur vorherigen Version wurden in die neue Version 505 Ănderungen aufgenommen, die von 77 Entwicklern vorbereitet wurden, von denen 26 zum ersten Mal an der Entwicklung beteiligt waren. Die Hauptpunkte :
- Es wurden experimentelle Befehle wie âgit switchâ und âgit restoreâ eingefĂŒhrt, die dazu dienen, die kaum miteinander verbundenen Funktionen von âgit checkoutâ zu trennen, wie z. B. das Handhaben von Branches (Wechseln und Erstellen) und das Wiederherstellen von Dateien im Arbeitsverzeichnis (âgit checkout $commit â $filenameâ) oder direkt im Staging-Bereich (ââstagingâ, hat kein Ăquivalent in âgit checkoutâ). Es ist erwĂ€hnenswert, dass âgit restoreâ im Gegensatz zu âgit checkoutâ untracked Dateien aus den wiederherzustellenden Verzeichnissen löscht (ââno-overlayâ standardmĂ€Ăig).
- Die Option âgit merge âquitâ wurde hinzugefĂŒgt, die analog zu ââabortâ den Prozess des Branch-Mergings stoppt, jedoch das Arbeitsverzeichnis unberĂŒhrt lĂ€sst. Diese Option kann nĂŒtzlich sein, wenn einige der Ănderungen, die im Laufe eines manuellen Mergings vorgenommen werden, lieber als separater Commit erfasst werden sollten.
- Die Befehle âgit cloneâ, âgit fetchâ und âgit pushâ berĂŒcksichtigen nun das Vorhandensein von Commits in verknĂŒpften Repositories ();
- Die Optionen âgit blame âignore-revâ und ââignore-revs-fileâ, die es ermöglichen, Commits zu ĂŒberspringen, in denen unwesentliche Ănderungen (z. B. FormatierungsĂ€nderungen) vorgenommen wurden;
- Die Option âgit cherry-pick âskipâ wurde hinzugefĂŒgt, um einen konfliktbehafteten Commit zu ĂŒberspringen (speichert das Ăquivalent der Sequenz âgit reset && git cherry-pick âcontinueâ);
- Die Einstellung status.aheadBehind wurde hinzugefĂŒgt, die die Option âgit status â[no-]ahead-behindâ dauerhaft fixiert;
- Ab dieser Version berĂŒcksichtigt âgit logâ standardmĂ€Ăig die durch mailmap vorgenommenen Ănderungen, Ă€hnlich wie dies bereits bei git shortlog der Fall ist;
- Die Aktualisierung des in 2.18 eingefĂŒhrten experimentellen Commit-Graph-Caches (core.commitGraph) wurde erheblich beschleunigt. Auch git for-each-ref wurde beschleunigt, wenn mehrere Platzhalter verwendet werden, und die Anzahl der auto-gc-Aufrufe in âgit fetch âmultipleâ wurde verringert;
- âgit branch âlistâ zeigt jetzt immer den detached HEAD ganz oben in der Liste an, unabhĂ€ngig von der Locale.
Quelle: opennet.ru
