Lansarea sistemului de control al surselor distribuite Git 2.23

Introdus lansarea unui sistem distribuit de control al sursei git 2.23.0. Git este unul dintre cele mai populare, fiabile și de înaltă performanță sisteme de control al versiunilor, oferind instrumente flexibile de dezvoltare neliniară bazate pe ramificare și îmbinare. Pentru a asigura integritatea istoricului și rezistența la modificări retroactive, se utilizează hashingul implicit al întregului istoric anterior în fiecare commit și este, de asemenea, posibilă certificarea etichetelor și commit-urilor individuale cu semnăturile digitale ale dezvoltatorilor.

În comparație cu versiunea anterioară, noua versiune a inclus 505 modificări, pregătite cu participarea a 77 de dezvoltatori, dintre care 26 au participat pentru prima dată la dezvoltare. De bază inovații:

  • Comenzile experimentale „git switch” și „git restore” sunt introduse pentru a separa capabilitățile „git checkout” cuplate, cum ar fi manipularea ramurilor (comutarea și crearea) și restaurarea fișierelor din directorul de lucru („git checkout $commit - $filename") sau imediat în zona de pregătire („—staging”, nu are analog în „git checkout”). Este de remarcat faptul că, spre deosebire de „git checkout”, „git restore” elimină fișierele neurmărite din directoarele care sunt restaurate („--no-overlay” în mod implicit).
  • A fost adăugată opțiunea „git merge –quit”, care, similar cu „-abort”, oprește procesul de îmbinare a ramurilor, dar lasă directorul de lucru neatins. Această opțiune poate fi utilă dacă unele dintre modificările făcute în timpul unei îmbinări manuale ar fi de preferat să fie emise ca un commit separat.
  • Comenzile „git clone”, „git fetch” și „git push” iau acum în considerare prezența comitărilor în depozitele legate (supleanți);
  • Adăugat opțiunile „git blame —ignore-rev” și „—ignore-revs-file” vă permit să omiteți comiterile care fac modificări minore (de exemplu, remedieri de formatare);
  • S-a adăugat opțiunea „git cherry-pick —skip” pentru a omite un commit conflictual (un analog memorat al secvenței „git reset && git cherry-pick —continue”);
  • S-a adăugat setarea status.aheadBehind, care fixează permanent opțiunea „git status -[no-]ahead-behind”;
  • Începând cu această ediție, „git log” în mod implicit ia în considerare modificările făcute de mailmap, similar cu cum o face deja git shortlog;
  • Operația de actualizare a cache-ului experimental al graficului de comitere (core.commitGraph) introdusă în 2.18 a fost accelerată semnificativ. De asemenea, a făcut git for-each-ref mai rapid atunci când utilizați mai multe șabloane și a redus numărul de apeluri la auto-gc în „git fetch —multiple”;
  • „git branch --list” arată acum întotdeauna HEAD detașat chiar la începutul listei, indiferent de locație.

Sursa: opennet.ru

Adauga un comentariu