wydanie rozproszonego systemu zarządzania tekstami źródłowymi . Git jest jednym z najpopularniejszych, najbardziej niezawodnych i wydajnych systemów zarządzania wersjami, oferującym elastyczne narzędzia do nieliniowego rozwoju, oparte na rozgałęzianiu i scalaniu gałęzi. Dla zapewnienia integralności historii i odporności na zmiany „wstecz” stosowane jest niejawne haszowanie całej poprzedniej historii w każdym commicie, a także możliwe jest uwierzytelnienie cyfrowymi podpisami deweloperów poszczególnych tagów i commitów.
W porównaniu do poprzedniej wersji, w tej nowej edycji wprowadzono 317 zmian, które zostały przygotowane przez 58 programistów, z czego 13 wzięło udział w projekcie po raz pierwszy. Główne :
- Dodano ustawienie init.defaultBranch, które umożliwia wybór dowolnej nazwy głównej gałęzi, która będzie stosowana domyślnie. Ustawienie dodano dla projektów, których programiści nie mogą się pogodzić z pamięcią o niewoli, a słowo „master” jest postrzegane jako obraźliwa aluzja lub wywołuje duchowe cierpienia i poczucie nieodkupionej winy. , i podjęto decyzję, aby domyślnie zamiast słowa „master” dla głównych gałęzi używać słowa „main”. W Git, jak wcześniej, przy użyciu polecenia „git init” domyślnie wciąż tworzona jest gałąź „master”, ale tę nazwę można teraz zmienić. Na przykład, aby zmienić nazwę początkowej gałęzi na „main”, można użyć polecenia:
git config —global init.defaultBranch main
- Dodano optymalizacje wydajności, oparte na nowym formacie plików commit-graph, stosowanym do optymalizacji dostępu do informacji o commitach, wsparcia , struktury probabilistycznej opartej na dozwoleniu na fałszywe określenie brakującego elementu, ale wykluczającej pominięcie istniejącego elementu. Struktura ta pozwala znacznie przyspieszyć wyszukiwanie w historii zmian przy użyciu poleceń „git log — ” lub „git blame”.
- W poleceniu „git status” zapewniono wyświetlanie informacji o postępach operacji częściowego klonowania (sparse-checkout).
- Dla poleceń rodziny „diff” wprowadzono nowe ustawienie „diff.relative”.
- Podczas sprawdzania za pomocą „git fsck” teraz oceniana jest sortowanie drzewa obiektów i identyfikowane są niesortowane elementy.
- Uproszczono interfejs do edytowania informacji poufnych w wynikach śledzenia.
- W skrypcie automatycznego uzupełniania dodano wsparcie dla opcji polecenia „git switch”.
- W „git diff” dodano wsparcie dla przekazywania argumentów w różnych notacjach („git diff A..B C”, „git diff A..B C…D” itd.).
- Do polecenia „git fast-export —anonymize” dodano możliwość ustalenia własnego mapowania elementów w celu dostosowania wyników, aby były bardziej przydatne do debugowania.
- W „git gui” zezwolono na otwieranie drzew roboczych z początkowego dialogu.
- W protokole „fetch/clone” zaimplementowana została możliwość informowania klienta przez serwer o potrzebie pobrania wcześniej przygotowanych plików paczek obok przesyłanych spakowanych danych obiektu.
- Trwają prace nad przejściem na algorytm haszowania SHA-256 zamiast SHA-1.
Źródło: opennet.ru
