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.

Źródło: opennet.ru

Dodaj komentarz