Wydanie rozproszonego systemu kontroli źródła Git 2.23
Przesłane przez wydanie rozproszonego systemu kontroli źródła Git 2.23.0. Git to jeden z najpopularniejszych, niezawodnych i wydajnych systemów kontroli wersji, zapewniający elastyczne narzędzia do nieliniowego programowania oparte na rozgałęzianiu i łączeniu. Aby zapewnić integralność historii i odporność na zmiany wsteczne, w każdym zatwierdzeniu stosowane jest ukryte haszowanie całej poprzedniej historii, możliwe jest także certyfikowanie poszczególnych tagów i zatwierdzeń cyfrowymi podpisami programistów.
W porównaniu do poprzedniej wersji, nowa wersja zawierała 505 zmian, przygotowanych przy udziale 77 programistów, z czego 26 brało udział w tworzeniu po raz pierwszy. Podstawowy innowacje:
Wprowadzono eksperymentalne polecenia „git switch” i „git Restore” w celu oddzielenia luźno powiązanych funkcji „git checkout”, takich jak manipulowanie gałęziami (przełączanie i tworzenie) oraz przywracanie plików w katalogu roboczym („git checkout $commit - $filename”) lub bezpośrednio w obszarze przejściowym („—staging” nie ma odpowiednika w „git checkout”). Warto zauważyć, że w przeciwieństwie do „git checkout”, „git Restore” usuwa nieśledzone pliki z przywracanych katalogów (domyślnie „--no-overlay”).
Dodano opcję „git merge –quit”, która podobnie jak „-abort” zatrzymuje proces łączenia gałęzi, ale pozostawia katalog roboczy nietknięty. Ta opcja może być przydatna, jeśli niektóre zmiany wprowadzone podczas ręcznego scalania powinny zostać wydane jako osobne zatwierdzenie.
Polecenia „git clone”, „git fetch” i „git Push” uwzględniają teraz obecność zatwierdzeń w połączonych repozytoriach (zastępcy);
Dodany opcje „git bla —ignore-rev” i „—ignore-revs-file” pozwalają pominąć zatwierdzenia, które wprowadzają drobne zmiany (na przykład poprawki formatowania);
Dodano opcję „git cherry-pick —pomiń”, aby pominąć zatwierdzenie powodujące konflikt (zapamiętany odpowiednik sekwencji „git reset && git cherry-pick —kontynuuj”);
Dodano ustawienie status.aheadBehind, które na stałe naprawia opcję „git status -[no-]ahead-behind”;
Od tej wersji „git log” domyślnie uwzględnia zmiany wprowadzone przez mailmap, podobnie jak robi to już git shortlog;
Wprowadzona w wersji 2.18 operacja aktualizacji eksperymentalnej pamięci podręcznej wykresu zatwierdzeń (core.commitGraph) została znacznie przyspieszona. Przyspieszono także git for-each-ref przy użyciu wielu szablonów i zmniejszono liczbę wywołań auto-gc w „git fetch —multiple”;
„git Branch --list” teraz zawsze pokazuje odłączoną HEAD na samym początku listy, niezależnie od ustawień regionalnych.