Zaprezentowano premierę nowej wersji Gita 2.22. Git to jeden z najpopularniejszych, najbardziej niezawodnych i wydajnych systemów kontroli wersji , który oferuje również narzędzia programistyczne.
Aby zapewnić integralność historii i odporność na zmiany z perspektywy czasu, niejawne mieszanie całej poprzedniej historii jest używane przy każdym zatwierdzeniu, a podpisy cyfrowe poszczególnych znaczników i zatwierdzeń mogą być również weryfikowane.
W porównaniu z poprzednią wersją , w nowej wersji wprowadzono 745 zmian, przygotowanych przy udziale 74 programistów, z których 18 brało udział w rozwoju po raz pierwszy.
Najważniejsze cechy Git 2.22
Aby wyświetlić aktualnie używaną gałąź lokalną, możesz teraz użyć polecenia „git branch-show-current ”.
Ponadto od wersji 1.18 dostępny jest nowy tryb transferu dla zestawu zatwierdzeń „ git rebase --rebase-merges ” , który zastąpił poprzednią opcję „ --preserve-merges ”, obecnie oznaczoną jako przestarzała.
Aby zachować strukturę gałęzi w gałęzi przenośnej, można użyć opcji „ --preserve-merges ”, która uruchomiona w trybie interaktywnym ( git rebase -i --preserve-merges ) umożliwiała edycję historii zatwierdzeń, lecz nie gwarantowała całkowitego zachowania struktury repozytorium.
Tryb następczy „ --rebase-merges ” umożliwia zachowanie struktury zmian w gałęzi przenośnej, zapewniając jednocześnie pełen zestaw operacji interaktywnych, w tym usuwanie, ponowne układanie i zmianę nazw zatwierdzeń.
Na przykład „ --rebase-merges ” pozwala na zatwierdzanie zmian z odłączonej gałęzi do nowszej gałęzi głównej, przy jednoczesnym zachowaniu struktury gałęzi w gałęzi przenośnej i wprowadzeniu pewnych zmian w notatkach, aby zatwierdzać je „w locie”.
Operacja „ git rebase ” służy do zastąpienia serii zatwierdzeń nowym zatwierdzeniem bazowym, na przykład w celu zmiany oddzielnej gałęzi, w której rozwijana jest nowa funkcja, na bieżący stan gałęzi głównej, łącznie ze wszystkimi poprawkami dodanymi po tej gałęzi.
Wysublimowana obsługa zaplecza
Raport ` git bisect` został zaktualizowany i jest teraz bardziej czytelny , a ` git mergetool` obsługuje teraz również Sublime Merge (` smerge` ) jako zaplecze. Git wywołuje nowy hak ` post-index-change` po zmianie zapisanego pliku indeksu, co jest pomocne w przypadku wirtualizowanych drzew roboczych.
Dodatkowo polecenie „ git difftoo l” teraz działa również poza repozytorium i anuluje polecenie „ git checkout -m <other> ” w przypadku wykrycia różnicy między HEAD a indeksem.
Ponieważ pakowanie indeksu czasami zajmuje dużo czasu w procesie klonowania, programiści udostępnili Ci pasek postępu w tym procesie.
Jednocześnie ` git clone` komunikuje się za pośrednictwem wersji 2 protokołu dzięki nowej opcji serwera ` switch` . Kilka funkcji usprawnia uzupełnianie kodu, a programiści pracowali również nad narzędziem śledzenia trace2.
Nowy mechanizm śledzenia Trace2 oferuje bardziej elastyczny i ustrukturyzowany format wyjściowy. Trace2 umożliwia zbieranie danych telemetrycznych i wydajnościowych w celu bardziej szczegółowej analizy i debugowania (użytkownik przypisuje kontroler; dane nie są przesyłane na zewnątrz).
Wydajność i rozwój
Wbudowany mechanizm różnicowy Gita został przepisany i obsługuje teraz ` git commit-tree` , a API ` pack-redundant` i ` git multi-pack-index verify` działają teraz szybciej w repozytoriach zawierających wiele plików pakietów. Zaktualizowano również środowisko testowe dla programistów.
Niedawno ` git stash` został zaimplementowany w C dla ` git rebase` . Implementacja w C została zaktualizowana , aby zapobiec wielokrotnemu nadpisywaniu tego samego pliku przez Gita. ` git diff` działa teraz szybciej również w szczególnych scenariuszach, w których gromadzi informacje o blobach. Wreszcie, `git clone` przyspiesza proces łączenia.
Dodano również możliwość filtrowania, gdy wyświetlane są rozszerzone tagi „git log” dołączone do zatwierdzeń.