Predstavljeno je lansiranje nove verzije Gita 2.22. Git je jedan od najpopularnijih, najpouzdanijih i visokoučinkovitih sistema za kontrolu verzija , a također pruža i alate za razvoj.
Da bi se osigurao integritet povijesti i otpor promjenama unatrag, implicitno raspršivanje sve prethodne povijesti koristi se pri svakom urezivanju, a mogu se provjeriti i digitalni potpisi pojedinih programera oznaka i urezivanja.
U poređenju sa prethodnom verzijom , u novoj verziji je napravljeno 745 promjena, a u pripremi je učestvovalo 74 programera, od kojih je 18 prvi put učestvovalo u razvoju.
Git 2.22 ističe se
Da biste prikazali trenutno korištenu lokalnu granu, sada možete koristiti naredbu "git branch-show-current ".
Osim toga, od verzije 1.18 dostupan je novi način prijenosa za commit set " git rebase --rebase-merges " , koji je zamijenio prethodnu opciju " --preserve-merges ", koja je sada označena kao zastarjela.
Da biste sačuvali strukturu grane u prenosivoj grani, mogli biste koristiti opciju " --preserve-merges ", koja je, kada se pokrene u interaktivnom režimu ( git rebase -i --preserve-merges ), omogućila uređivanje historije commit-ova, ali nije garantovala potpuno očuvanje strukture repozitorija.
Nasljedni način rada " --rebase-merges " vam omogućava da sačuvate strukturu promjena u prenosivoj grani, a istovremeno pružate potpuni skup interaktivnih operacija, uključujući brisanje, preuređivanje i preimenovanje commit-ova.
Na primjer, " --rebase-merges " omogućava commit-ove iz odvojene grane u noviju glavnu granu, uz zadržavanje strukture grane u prenosivoj grani i pravljenje nekih promjena u bilješkama kako bi se commit-ovali u hodu.
Operacija " git rebase " se koristi za zamjenu serije commitova novim osnovnim commitom, na primjer, za promjenu zasebne grane gdje se razvija neka nova funkcija u trenutno stanje glavne grane, uključujući sve ispravke dodane nakon grane.
Uzvišena pozadinska podrška
Izvještaj ` git bisect` je ažuriran i sada je čitljiviji , dok ` git mergetool` sada također podržava Sublime Merge (` smerge` ) kao backend. Git poziva novi ` post-index-change` hook kada se pohranjena datoteka indeksa promijeni, što pomaže s virtualiziranim radnim stablima.
Osim toga, " git difftoo l" sada se izvršava i izvan repozitorija i prekida " git checkout -m <other> " kada otkrije razliku između HEAD-a i index-a.
Budući da pakiranje indeksa ponekad traje dugo u procesu kloniranja, programeri su vam dali traku napretka u procesu.
Istovremeno, ` git clone` komunicira putem verzije 2 protokola zahvaljujući novoj serverskoj opciji ` switch` . Nekoliko funkcija poboljšava dovršavanje koda, a programeri su također radili na alatu za praćenje trace2.
Novi mehanizam praćenja Trace2 nudi fleksibilniji i strukturiraniji format izlaza. Trace2 omogućava prikupljanje operativne telemetrije i podataka o performansama za detaljniju analizu i otklanjanje grešaka (korisnik dodjeljuje kontroler; nikakvi podaci se ne šalju eksterno).
Performanse i razvoj
Gitov ugrađeni diferencijalni mehanizam je prepisan i sada podržava ` git commit-tree` , a ` pack-redundant` API i ` git multi-pack-index verify` sada rade brže u repozitorijima koji sadrže mnogo datoteka paketa. Za programere, okvir za testiranje je također ažuriran.
Nedavno je ` git stash` implementiran u C za ` git rebase` . C implementacija je ažurirana kako bi se spriječilo da Git više puta prepisuje istu datoteku. ` git diff` sada također radi brže u posebnim scenarijima gdje prikuplja informacije o blobovima. Na kraju, ali ne i najmanje važno, `git clone` ubrzava proces povezivanja.
Takođe je dodana mogućnost filtriranja kada se prikažu proširene oznake "git log" povezane sa komitovima.