Wydanie rozproszonego systemu zarządzania kodem źródłowym Git 2.23

Przedstawiony wydanie rozproszonego systemu zarządzania tekstami źródłowymi Git 2.23.0. Git jest jednym z najpopularniejszych, niezawodnych i wydajnych systemów zarządzania wersjami, oferującym elastyczne narzędzia do nieliniowego rozwoju, oparte na rozgałęzianiu i scalaniu. W celu zapewnienia integralności historii i odporności na zmiany wsteczne, stosuje się niejawne haszowanie całej poprzedniej historii w każdym commicie, możliwe jest również weryfikowanie cyfrowymi podpisami deweloperów poszczególnych tagów i commitów.

W porównaniu z poprzednią wersją w nowej wersji wprowadzono 505 zmian, przygotowanych przez 77 deweloperów, z których 26 po raz pierwszy wzięło udział w rozwoju. Główne nowości:

  • Wprowadzone zostały eksperymentalne komendy „git switch” i „git restore”, które mają na celu oddzielenie od siebie niewielko powiązanych możliwości „git checkout”, takich jak manipulacja gałęziami (przełączanie i tworzenie) oraz przywracanie plików w roboczej wersji („git checkout $commit — $filename”) lub od razu w strefie staging („—staging”, która 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 („—no-overlay” domyślnie).
  • Dodana została opcja „git merge —quit”, która, podobnie jak „—abort”, zatrzymuje proces scalania gałęzi, ale pozostawia roboczą wersję nienaruszoną. Ta opcja może być przydatna, jeśli niektóre zmiany wprowadzone podczas ręcznego scalania są lepsze do zarejestrowania jako osobny commit.
  • Komendy „git clone”, „git fetch” oraz „git push” teraz uwzględniają obecność commitów w powiązanych repozytoriach (alternates);
  • Dodano opcje „git blame —ignore-rev” oraz „—ignore-revs-file”, które pozwalają na pominięcie commitów, w których wprowadzono nieznaczne poprawki (np. poprawki formatowania);
  • Dodana została opcja „git cherry-pick —skip” do pominięcia konfliktowego commita (zapisywana analogia do sekwencji „git reset && git cherry-pick —continue”);
  • Dodano ustawienie status.aheadBehind, które na stałe ustala opcję „git status —[no-]ahead-behind”;
  • W tej wersji „git log” domyślnie uwzględnia zmiany wprowadzone przez mailmap, podobnie jak to już ma miejsce w git shortlog;
  • Zdecydowanie przyspieszono operację aktualizacji wraz z wprowadzonym w 2.18 eksperymentalnym cache'em grafu commitów (core.commitGraph). Przyspieszono również git for-each-ref w przypadku wykorzystania wielu szablonów i zmniejszono liczbę wywołań auto-gc w „git fetch —multiple”;
  • „git branch —list” teraz zawsze pokazuje detached HEAD na początku listy, niezależnie od lokalizacji.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster