devnews.pl

Main Menu

  • Informacje
    • Systemy i przeglądarki
    • Gadżety
  • Narzędzia
  • Frontend
  • Backend
  • QA
  • Języki programowania

logo

devnews.pl

  • Informacje
    • Systemy i przeglądarki
    • Gadżety
  • Narzędzia
  • Frontend
  • Backend
  • QA
  • Języki programowania
FrontendNarzędzia
Home›Frontend›Git 2.29 i zmiany w mobilnej wersji GitHub

Git 2.29 i zmiany w mobilnej wersji GitHub

By Bernadeta Zapała
22 października 2020
122
0
Share:

GitHub opublikował w tym tygodniu dwie ważne informacje. Pierwsza z nich dotyczy nowego wydania Git 2.29. Zawiera ono nowe funkcje i poprawki błędów od ponad 89 autorów. Drugą rzeczą są zmiany w GitHub na urządzenia mobilne. Te zmiany pozwalają z kolei na łatwe, szybkie i produktywniejsze przeglądanie kodu na smartfonach.

Git 2.29

Końcem lipca wydano Git 2.28. Tam nowością była opcja init.defaultBranch. Ponadto wprowadzono wiele poprawek wydajności, m.in. optymalizując rozszerzenie formatu commit-graph. Najnowsze wydanie zawiera przede wszystkim eksperymentalną obsługę SHA-256 oraz negatywne refspecs.

Algorytm SHA-256

Podczas dodawania plików do repozytorium, Git kopiuje zawartość do obiektów blob w lokalnej bazie danych. Następnie tworzy obiekty tree, odwołujące się do obiektów blob. Tak samo dzieje się podczas uruchamiania git commit, który tworzy commit odwołujący się do drzewa obrazującego stan zatwierdzeń. Git nadaje każdemu takiemu obiektowi identyfikator, na podstawie skrótu jego zawartości. Do tej pory korzystał z algorytmu SHA-1. Jednak, gdy dwa obiekty mają tę samą nazwę, następuje kolizja. Jest to mało prawdopodobne, ale korzystając z tej słabości, niektórzy wykorzystują je do ataków.

W ramach zapewnienia większego bezpieczeństwa wprowadzono nowy algorytm, bez znanych ataków – SHA-256.

$ git --version
git version 2.29.0
$ git init --object-format=sha256 repo
Initialized empty Git repository in /home/ttaylorr/repo/.git/
$ cd repo

$ echo 'Hello, SHA-256!' >README.md
$ git add README.md
$ git commit -m "README.md: initial commit"
[master (root-commit) 6e92961] README.md: initial commit
 1 file changed, 1 insertion(+)
 create mode 100644 README.md

$ git rev-parse HEAD
6e929619da9d82c78dd854dfe237c61cbad9e95148c1849b1f96ada5ee800810

Od wersji 2.29 Git może działać w trybie pełnego SHA-1 lub pełnego SHA-256. Na razie repozytoria korzystające z różnych formatów nie współpracują ze sobą. Jednak w przyszłych wydaniach współpraca między nimi może być możliwa, np. przez obliczanie wartości skrótu obu formatów każdego obiektu i przechowywanie między nimi tablicy translacji. Dzięki temu odwołania między starszymi commitami a nowymi będą mogły działać normalnie.

Refspecs w Git 2.29

Zawsze po uruchomieniu git fetch origin wszystkie gałęzie ze zdalnego repozytorium origin są pobierane do lokalnej hierarchii refs/remotes/origin/. Git wie, które gałęzie pobrać, ponieważ każdy plik konfiguracyjny zawiera refspecs. Do czasu nowego wydania z refspecs korzystało się do określenia wyboru referencji. Chcąc pobrać wszystkie gałęzie, z wyjątkiem jednej, należało wypisać je jako argumenty, jeden po drugim. Wyglądałoby to tak:

$ git ls-remote origin 'refs/heads/*' |
  grep -v ref-to-exclude |
  awk '{ print $2:$2 }' |
  xargs git fetch origin

Nowowprowadzona funkcja – negatywne refspecs znacznie ułatwia powyższy problem. Zaczynając refspecs od znaku ^, wskazuje się, które odniesienia mają być wykluczone.

$ git fetch origin 'refs/heads/*:refs/heads/*' ^refs/heads/ref-to-exclude

Sztuczki git shortlog

Funkcja git shortlog zachowuje się podobnie do git log. Jednak nie wyświetla ona commitów w sekwencji, tylko grupuje je według autora. Dotychczas git shortlog grupowało według autora zatwierdzenia (opcjonalnie – według tożsamości autora). Jednak nie pozwalało to na grupowe commity współautorów.

Git 2.29 zmienia to! Nowy argument –group określa sposób grupowania zatwierdzeń. Wcześniejsze zachowania otrzymuje się przez pobranie –group=author lub –group=committer. Jednak dodatkowo akceptuje także argument –group=trailer:<field>, dzięki którem można grupować commity ich współautorów.

Ponadto, korzystając z Reviewed-by i git shortlog programista może zobaczyć, kto recenzuje najwięcej poprawek.

GitHub na urządzenia mobilne

Ogólnodostępna wersja GitHub na urządzenia mobilne pojawiła się w kwietniu tego roku. Usprawniło to znacznie pracę programistów, odciągając ich od nieustannego siedzenia przed laptopem. Teraz programiści przeglądają kod podczas spaceru i są w stanie szybko reagować na wprowadzone zmiany. Najnowsza aktualizacja dodaje wiele funkcji, które znacznie ułatwią pracę programistów.

Przeglądanie kodu

Nowe wydanie zawiera przede wszystkim ulepszenia dotyczące przeglądania kodu. Czytanie kodu z zawiniętymi wierszami nie jest najwygodniejsze, dlatego twórcy dodali specjalny przełącznik.

https://www.devnews.pl/wp-content/uploads/2020/10/przegladanie-kodu.mp4

Kolejną nowością zapewniającą większą kontrolę jest zmiana adresu powiązanego z mergowaniem oraz edytowanie opisu commitów. W interfejsie internetowym w zeszłym roku dodano obsługę komentarzy do wielu wierszy kodu. Dziś opcja jest dostępna także na mobilnych urządzeniach.

https://www.devnews.pl/wp-content/uploads/2020/10/wielelinii.mp4

Podsumowanie Git 2.29 i mobilnej wersji

Szczegółowe informacje o najnowszym wydaniu Git 2.29 są dostępne na oficjalnym blogu GitHub. Platforma GitHub na urządzenia mobilne jest dostępna do pobrania w Google Play lub App Store dla indywidualnych planów, zespołów i Enterprise Cloud.

TagsGitGithubGitHub Mobile

Share:

  • Narzędzia

    Deno 1.0 – następca Node.js, gotowy do produkcji

  • Frontend

    React Native v.0.62 z obsługą Flippera

  • Narzędzia

    Pnpm 5.0 – lżejszy menedżer pakietów JavaScript

  • 3 marca 2021

    Vite 2.0 wydane z nowymi wtyczkami

  • 25 lutego 2021

    ReacType 5.0 – zmiany we wprowadzaniu komponentów

  • 23 lutego 2021

    Dapr v.1.0 gotowy do fazy produkcji

  • 22 lutego 2021

    ReScript 9.0 z zewnętrzną konfiguracją stdlib

  • 22 lutego 2021

    One UI 3.1 z ciekawymi nowościami dla urządzeń Samsunga

  • 22 lutego 2021

    Windows Terminal Preview 1.6 z nową sekcją ustawień

  • 15 lutego 2021

    Visual Studio Code 1.53 z ulepszeniami debugowania

  • 8 lutego 2021

    Edge 89 beta, Edge Dev 90 i nowości na kanale Canary

  • 2 lutego 2021

    Firefox 85 i Firefox Nightly – nowe wersje przeglądarki Mozilli

  • 29 stycznia 2021

    Billboard.js 2.2.0 z nowymi funkcjami wykresów

  • 26 stycznia 2021

    Kendo UI R1 2021 – nowości dla bibliotek

  • 21 stycznia 2021

    Narzędzie Vno – połączenie Vue i Deno

  • 19 stycznia 2021

    GitHub Enterprise Server 3.0 RC – kandydat do wydania

  • 15 stycznia 2021

    TypeScript 4.2 Beta z ulepszeniami typów krotek

  • 13 stycznia 2021

    Styczniowy Patch Tuesday z luką 0-day

  • 11 stycznia 2021

    Safari Technology Preview 118 dostępne dla programistów

  • 8 stycznia 2021

    Microsoft Launcher na Androida z usprawnionym dotykiem

  • 7 stycznia 2021

    WebStorm 2020.3.1 dostępny dla urządzeń z Apple Silicon

  • 22 grudnia 2020

    ReScript 8.4 z przypiętymi zależnościami

  • 14 grudnia 2020

    Edge 88 beta i przeglądarka na kanale Canary dostępne!

  • 9 grudnia 2020

    Chrome 88 Beta z nowościami w WebXR

  • 9 grudnia 2020

    Snowpack 3.0 RC z eksperymentalnymi funkcjami

  • 4 grudnia 2020

    Android Studio Arctic Fox – nowe wydanie narzędzia Google

  • 4 grudnia 2020

    The Hack Summit 2020 – konferencja IT Security

  • 2 grudnia 2020

    PowerToys 0.27 z poprawkami błędów

  • 2 grudnia 2020

    Aleph.js alfa z funkcją importowania map

  • 27 listopada 2020

    Cypress 6.0 zwiększa zakres możliwości obsługi sieci

  • 26 listopada 2020

    Firefox 83 przyspiesza i wprowadza tryb HTTPS-Only

  • 25 listopada 2020

    Electron 11.0 z obsługą Apple Silicon

  • 25 listopada 2020

    Prettier 2.2 z obsługą najnowszego TypeScript 4.1

 

 

Jesteśmy pasjonatami najnowszych technologii w świecie programowania. Zbieramy dla Was informacje i porady z całego świata, które sprawią, że Twoja praca stanie się jeszcze bardziej efektywna.

Obserwuj nas codziennie, aby być na bieżąco oraz śmiało udostępniaj nasze posty.

Zespół DevNews

Kategorie

  • Backend
  • Bez kategorii
  • Frontend
  • Gadżety
  • Informacje
  • Języki programowania
  • Narzędzia
  • QA
  • Systemy i przeglądarki

OBSERWUJ NAS

KONTAKT

Chcesz się z nami skontaktować?

Napisz do nas wiadomość: kontakt@devnews.pl

www.devnews.pl | DEVNEWS 2020 | Newsy i ciekawostki ze świata IT