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 acceptă 537 de modificări, pregătite cu participarea a 71 de dezvoltatori, dintre care 19 au contribuit pentru prima dată la dezvoltare. Principalele :
- A fost anulată activarea implicită implementată în versiunea anterioară a protocolului de comunicație Git, care este folosit atunci când clientul se conectează la un server Git. Protocolul este considerat în prezent nepregătit pentru utilizare implicită din cauza identificării unor puncte problematice care necesită o analiză separată.
- A fost adăugat un set de opțiuni pentru configurarea conexiunii SSL atunci când se accesează prin intermediul unui proxy.
- Informațiile furnizate în timpul utilizării filtrelor de transformare „clean” și „smudge” au fost extinse. De exemplu, acum se arată obiectul , în care apare blob-ul transformat.
- Pentru a evita confuzia, comanda „git describe” aplică acum întotdeauna modul extins de ieșire („—long”) dacă este identificat un tag înlocuit asociat cu commitul (anterior, un tag semnat sau anotat care descria commitul era afișat chiar și dacă a fost redenumit sau mutat în ierarhia „refs/tags/”, și comanda „git show tag^0” nu funcționa așa cum era de așteptat — „refs/tags/tag” nu era găsit sau era deja afișat un alt tag).
- La executarea „git pull” acum se afișează un avertisment, dacă variabila de configurație pull.rebase nu este specificată explicit și nu sunt aplicate opțiunile „—[no-]rebase” sau „—ff-only”. Pentru a suprima avertismentul celor care nu intenționează să efectueze operația de rebase, se poate seta variabila la valoarea „false”.
- Au fost revizuite opțiunile „git pull”, comune cu „git fetch”. Opțiunile similare, anterior neconținute în documentație, au fost documentate și asigurată transmiterea opțiunilor omise către „git fetch”.
- În comanda „git rebase” a fost adăugată opțiunea „—no-gpg-sign” pentru a suprascrie setarea „commit.gpgSign”.
- În «git format-patch» a fost adăugată posibilitatea de a afișa capetele «From:» și «Subject:» în forma lor neschimbată, fără a transforma caracterele care lipsesc în codificarea ASCII.
- În «git log» a fost adăugată opțiunea «—show-pulls», care permite vizualizarea nu doar a commit-urilor în care au avut loc modificări, ci și a commit-ului pentru fuziunea acestor modificări dintr-o ramură separată.
- A fost unificată procesarea intrării interactive în toate componentele și a fost adăugat apelul fflush() după afișarea promptului de intrare, dar înainte de operația de citire.
- În «git rebase» este permisă reaplicarea tuturor commit-urilor locale fără a efectua anterior operația «checkout», chiar dacă unele dintre ele au fost transmise anterior upstream.
- Valoarea variabilei de configurare ‘pack.useSparse’ a fost schimbată în ‘true’ pentru a activa implicit optimizările, care erau anterior prezentate ca experimentale.
- În «git merge» a fost adăugată opțiunea «—autostash».
- Interfața «sparse-checkout» a fost îmbunătățită.
- În «git update-ref —stdin» au fost adăugate mai multe acțiuni noi,
permițând controlul direct al tranzacțiilor de actualizare a referințelor, de exemplu, pentru implementarea unei actualizări atomice în două etape a referințelor în mai multe repository-uri. - Au fost adăugate șabloane userdiff pentru documentele Markdown.
- A fost eliminată restricția de a exclude toate căile din șabloanele sparse-checkout, care conduceau la o arborie de lucru goală.
- Operația «git restore —staged —worktree» utilizează acum în mod implicit conținutul din ramura «HEAD», în loc să returneze o eroare.
- A fost continuată tranziția la algoritmul de hashing SHA-2 în loc de SHA-1.
- Codul pentru interacțiunea cu GnuPG a fost refăcut.
Sursa: opennet.ro
