eliberarea unui sistem distribuit de gestionare a codului sursă . Git este unul dintre cele mai populare, fiabile și puternice sisteme de gestionare a versiunilor, oferind instrumente flexibile pentru dezvoltarea non-lineară, bazate pe ramificare și fuziune a ramurilor. Pentru a asigura integritatea istoriei și rezistența la modificări retroactive, se utilizează o hashare implicită a întregii istorii anterioare în fiecare commit, iar cote și commituri pot fi certificate prin semnături digitale ale dezvoltatorilor.
Comparativ cu versiunea anterioară, noua versiune include 317 modificări, realizate cu contribuția a 58 de dezvoltatori, dintre care 13 au participat pentru prima dată la dezvoltare. Principalele :
- a fost adăugată setarea init.defaultBranch, care permite alegerea unui nume arbitrar pentru ramura principală, care va fi aplicat implicit. Această setare a fost adăugată pentru proiectele ale căror dezvoltatori sunt deranjați de amintirile despre sclavie și cuvântul „master” este perceput ca o aluzie jignitoare sau evocă suferință sufletească și un sentiment de vinovăție neexpiate. , și s-a decis că, implicit, în loc de cuvântul „master”, pentru ramurile principale se va folosi cuvântul „main”. În Git, ca și înainte, atunci când se execută comanda „git init”, se va crea în continuare ramura „master” implicit, dar acest nume poate fi acum schimbat. De exemplu, pentru a schimba numele ramurii inițiale în „main”, se poate folosi comanda:
git config —global init.defaultBranch main
- Au fost adăugate optimizări ale performanței bazate pe introducerea formatului de fișier commit-graph, folosit pentru a optimiza accesul la informațiile despre commit-uri, suport pentru , o structură probabilistică care permite definirea falsă a unui element lipsă, dar exclude omisiunea unui element existent. Această structură permite accelerarea semnificativă a căutării în istoricul modificărilor atunci când se folosesc comenzile „git log — <path>” sau „git blame”.
- Comanda „git status” oferă acum informații despre progresul desfășurării operației de clonare parțială (sparse-checkout).
- Pentru comenzile din familia „diff” a fost propusă o nouă setare „diff.relative”.
- La verificarea prin „git fsck”, acum se evaluează sortarea arborelui de obiecte și se identifică elementele nesortate.
- Interfața pentru editarea informațiilor confidențiale din ieșirea de urmărire a fost simplificată.
- În scenariul de autocompletare a inputului a fost adăugat suport pentru completarea opțiunilor comenzii „git switch”.
- În „git diff” a fost adăugată suportul pentru transmiterea argumentelor în diferite notații („git diff A..B C”, „git diff A..B C…D” etc.).
- În comanda „git fast-export —anonymize” a fost adăugată posibilitatea de a specifica un mapping personalizat al elementelor pentru a ajusta ieșirea, pentru a o face mai prietenoasă pentru depanare.
- În „git gui” a fost permisă deschiderea arborilor de lucru din dialogul inițial.
- Protocolul „fetch/clone” include capacitatea serverului de a informa clientul despre necesitatea de a descărca pachete preîntocmite, pe lângă datele ambalate ale obiectului transmis.
- Se continuă lucrările pentru tranziția la algoritmul de hashing SHA-256 în loc de SHA-1.
Sursa: opennet.ro
