Iesniedzis izplatÄ«ta avota kontroles sistÄmas izlaiÅ”ana Git 2.22.0. Git ir viena no populÄrÄkajÄm, uzticamÄkajÄm un augstas veiktspÄjas versiju kontroles sistÄmÄm, kas nodroÅ”ina elastÄ«gus nelineÄrus izstrÄdes rÄ«kus, kuru pamatÄ ir sazaroÅ”ana un apvienoÅ”ana. Lai nodroÅ”inÄtu vÄstures integritÄti un izturÄ«bu pret atpakaļejoÅ”ajÄm izmaiÅÄm, tiek izmantota netieÅ”a visas iepriekÅ”ÄjÄs vÄstures jaukÅ”ana katrÄ saistÄ«bÄ, kÄ arÄ« ir iespÄjams sertificÄt atseviŔķus tagus un saistÄ«bas ar izstrÄdÄtÄju digitÄlajiem parakstiem.
SalÄ«dzinot ar iepriekÅ”Äjo versiju, jaunajÄ versijÄ tika iekļautas 745 izmaiÅas, kas sagatavotas, piedaloties 74 izstrÄdÄtÄjiem, no kurÄm 18 izstrÄdÄ piedalÄ«jÄs pirmo reizi. GalvenaisjauninÄjumiem:
Pieejams kopÅ” 1.18. izlaiduma, jaunais apstiprinÄÅ”anas atjaunoÅ”anas režīms "git rebase --rebase-merges" aizstÄj veco opciju "--preserve-merges", kas tagad ir novecojusi. OperÄcija "git rebase" tiek izmantota, lai aizstÄtu virkni saistÄ«bu ar jaunu pamata apÅemÅ”anos, piemÄram, lai pÄrvietotu atseviŔķu filiÄli, kas izstrÄdÄ kÄdu jaunu lÄ«dzekli, uz paÅ”reizÄjo galvenÄs filiÄles stÄvokli, kas ietver labojumus, kas pievienoti pÄc filiÄles. :
o - o - o (mana funkcija)
/
o - o - o - o - o (meistars)
o - o - o (mana funkcija)
/
o - o - o - o - o (meistars)
Lai saglabÄtu filiÄles struktÅ«ru migrÄtajÄ zarÄ, iepriekÅ” varÄja izmantot opciju ā--preserve-mergesā, kas, palaižot interaktÄ«vajÄ režīmÄ (git rebase -i --preserve-merges), ļÄva rediÄ£Ät saistÄ«bu vÄsturi, bet negarantÄja pilnÄ«gu repozitorija struktÅ«ras saglabÄÅ”anu. Jaunais ā--rebase-mergesā režīms ļauj saglabÄt migrÄjamÄs filiÄles izmaiÅu struktÅ«ru, vienlaikus nodroÅ”inot pilnu interaktÄ«vu darbÄ«bu klÄstu, tostarp saistÄ«bu dzÄÅ”anu, pÄrgrupÄÅ”anu un pÄrdÄvÄÅ”anu.
PiemÄram, "--rebase-merges" pieļauj atkÄrtoti augÅ”upielÄdÄjiet saistÄ«bas no atseviŔķas filiÄles uz jaunÄku galveno filiÄli, vienlaikus saglabÄjot filiÄles struktÅ«ru migrÄtajÄ filiÄlÄ, un lidojuma laikÄ veiciet dažas izmaiÅas saistÄ«bu piezÄ«mÄs.
Pievienots atbalsts jaunas filiÄles izveidei, pamatojoties uz divu citu atzaru sapludinÄÅ”anas bÄzes noteikÅ”anas rezultÄtu (apvienoÅ”anas bÄze, saistÄ«Å”ana ar kopÄjo priekÅ”teci), izmantojot konstrukcijas āgit branch new A...Bā un āgit checkout -b new A...Bā, kurÄ āA...Bā ietver sapludinÄÅ”anas bÄzes definÄÅ”anu starp divÄm norÄdÄ«tajÄm saistÄ«bÄm, lÄ«dzÄ«gi kÄ āgit checkout A...Bā pÄrvieto HEAD uz pamata saistÄ«bu un ādiff A. ..B" parÄda izmaiÅas starp apÅemÅ”anos "B" un to paÅ”u, ko commit "A" "Sencis.
PiemÄram, strÄdÄjot ar atseviŔķu mana lÄ«dzekļa atzaru, Å”o lÄ«dzekli var izmantot, ja vÄlaties sÄkt no citas filiÄles, piemÄram, no tÄs paÅ”as vietas galvenajÄ zarÄ, no kuras tika izrakstÄ«ta mana lÄ«dzekļa filiÄle. IepriekÅ” bija nepiecieÅ”ams manuÄli pÄrbaudÄ«t izmaiÅu žurnÄlu, kas bija neÄrti, ja jums bija liela izmaiÅu vÄsture, un pÄc tam palaist āgit merge-base master my-featureā, lai aprÄÄ·inÄtu sapludinÄÅ”anas bÄzes jaukÅ”anu starp galveno un my-feature zariem. un izveidojot jaunu atzaru attiecÄ«bÄ pret kopÄjo priekÅ”teci āgit zara mana-cita-funkciju jaucÄjvÄrdsā. ProgrammÄ Git 2.22 varat izmantot sintaksi "git filiÄle mana-cita funkcija A...B", lai izveidotu atzaru attiecÄ«bÄ pret divu citu zaru sapludinÄÅ”anas bÄzi;
Pievienota opcija "git branch --show-current", lai parÄdÄ«tu kases darbÄ«bas laikÄ iegÅ«to filiÄles nosaukumu;
Pievienota opcija āgit checkout āno-overlay ā dirā, kas ļauj, veicot izrakstÄ«Å”anÄs darbÄ«bu, dir direktorijas saturu konfigurÄt formÄ, kas pilnÄ«bÄ atbilst galvenÄs filiÄles stÄvoklim. PiemÄram, ja dir direktorija lokÄlajÄ kopijÄ ir fails, kas neatrodas galvenajÄ zarÄ, tad pÄc noklusÄjuma, izpildot āgit checkout master - dirā, tas tiks atstÄts, un, ja ā--no-overlay ā opcija ir norÄdÄ«ta, tÄ tiks dzÄsta;
Komanda "git diff" opciju parsÄÅ”anai izmanto universÄlu API, kas ļauj apvienot opciju apstrÄdi ar citÄm git utilÄ«tprogrammÄm. PiemÄram, āgit diffā visÄm opcijÄm tagad ir savi antagonisti (ā--function-contextā un ā--no-function-contextā);
Pievienota iespÄja filtrÄt paplaÅ”inÄtos tagus, kas pievienoti saistÄ«bÄm āgit žurnÄlaā izvadÄ (āpiekabeā ā papildu informÄcijas karodziÅi, piemÄram, Signed-off-by un Co-authored-by). Ir iespÄjams filtrÄt etiÄ·etes gan pÄc atslÄgas, gan vÄrtÄ«bas, piemÄram:
"git log --pretty="%(trailers:key=Reviewed-by,valueonly)";
Ir pievienots jauns izsekoÅ”anas dzinÄjs Trace2, kas piedÄvÄ elastÄ«gÄku un strukturÄtÄku izvades formÄtu. Trace2 ļauj apkopot telemetrijas datus par veiktajÄm operÄcijÄm un veiktspÄjas datus detalizÄtÄkai analÄ«zei un atkļūdoÅ”anai (apdarinÄtÄju pieŔķir lietotÄjs, dati netiek nosÅ«tÄ«ti ÄrÄji);
PÄrskats āgit bisectā ir padarÄ«ts lasÄmÄks, kurÄ tagad ir skaidrÄk izceltas problemÄtiskÄs saistÄ«bas un tiek parÄdÄ«ta katra faila izmaiÅu kopsavilkuma statistika (mainÄ«to rindu skaita lÄ«menÄ«);
Direktoriju pÄrdÄvÄÅ”anas noteikÅ”anas heiristika ir pÄrveidota, lai novÄrstu nepareizu pÄrdÄvÄÅ”anas etiÄ·eÅ”u instalÄÅ”anu. Ja rodas Å”aubas, Å”Ädi direktoriji tagad ir atzÄ«mÄti kÄ konfliktÄjoÅ”i;
BrÄ«dinÄjums tiek parÄdÄ«ts, mÄÄ£inot ievietot tagu citam tagam, kas parasti tiek izdarÄ«ts kļūdas dÄļ un var novest pie tÄ, ka tags tiek iestatÄ«ts nepareizai apstiprinÄÅ”anai (piemÄram, tÄda konstrukcija kÄ āgit tag -f -m āatjauninÄts ziÅojumsā my-tag1 my-tag2ā³ rezultÄtÄ vecajam tagam tiks izveidots tags, turpretim izstrÄdÄtÄjs paredzÄja, ka jaunais tags tiks instalÄts saistÄ«bÄ, uz kuru norÄda vecais tags);
Ir iespÄjota Ä£enerÄÅ”ana bitkartes krÄtuvÄm (uz diska balstÄ«ta "sasniedzamÄ«bas bitkartes" struktÅ«ra), kurÄs tiek glabÄti dati par objektu kopÄm, kas ir pieejamas katrai apstiprinÄÅ”anai, un ļauj Ätri noteikt bÄzes objekta klÄtbÅ«tni. Å Ä« struktÅ«ra ievÄrojami samazina datu izguves operÄciju izpildes laiku (git fetch).