Ukukhutshwa kwenkqubo yolawulo lomthombo osasaziweyo Git 2.26

Iyafumaneka ukukhululwa kwenkqubo yolawulo lomthombo osasaziweyo IGit 2.26.0. I-Git yenye yezona zinto zidumileyo, ezinokwethenjelwa kwaye zisebenza kakhulu kwiinkqubo zokulawula iinguqulelo, ezibonelela ngezixhobo eziguquguqukayo zophuhliso ezingangqameneyo ezisekelwe kwi-branching kunye nokudibanisa. Ukuqinisekisa intembeko yembali kunye nokuchasa utshintsho retroactive, hashing efihlakeleyo yonke imbali yangaphambili kwisibophelelo ngasinye kusetyenziswa, kwaye kuyenzeka ukuba baqinisekise iithegi ngamnye kwaye uzibophelele kunye utyikityo digital abaphuhlisi.

Xa kuthelekiswa nokukhululwa kwangaphambili, inguqu entsha yayiquka utshintsho lwe-504, olulungiselelwe ngokuthatha inxaxheba kwabaphuhlisi be-64, apho i-12 yathatha inxaxheba ekuphuhliseni okokuqala. Siseko ezintsha:

  • Ukungagqibeki kutshintshelwe kuyo inguqulelo yesibini Iprotocol yonxibelelwano yeGit, esetyenziswa xa umxhasi eqhagamshela ekude kumncedisi weGit. Uguqulelo lwesibini lweprotocol luphawuleka ngokubonelela ngokukwazi ukuhluza amasebe kunye neethegi kwicala lomncedisi, ukubuyisela uluhlu olufutshane lwamakhonkco kumxhasi. Ngaphambili, nawuphi na umyalelo wokutsala uya kuhlala uthumela umxhasi uluhlu olupheleleyo lweereferensi kwindawo yokugcina yokugcina, naxa umxhasi wayehlaziya kuphela isebe elinye okanye ejonga ukuba ikopi yabo yokugcina iphelile. Enye into entsha ephawulekayo kukukwazi ukongeza amandla amatsha kwiprothokholi njengoko ukusebenza okutsha kufumaneka kwi-toolkit. Ikhowudi yomxhasi ihlala ihambelana neprotocol endala kwaye ingaqhubeka nokusebenza kunye namaseva amatsha kunye namadala, ibuyela ngokuzenzekelayo kwinguqulo yokuqala ukuba umncedisi akaxhasi okwesibini.
  • Inketho ethi "-show-scope" yongezwe kumyalelo we-"git config", isenza kube lula ukuchonga indawo apho kuchazwe khona iisetingi ezithile. I-Git ikuvumela ukuba uchaze izicwangciso kwiindawo ezahlukeneyo: kwindawo yokugcina (.git/info/config), kulawulo lomsebenzisi (~/.gitconfig), kwindlela ebanzi yefayile yoqwalaselo (/etc/gitconfig), nangomyalelo. iinketho zomgca kunye nokuguquguquka kokusingqongileyo. Xa usenza "i-git config" kunzima ukuqonda ukuba isicwangciso esifunwayo sichazwa phi. Ukusombulula le ngxaki, "--show-origin" ukhetho belukhona, kodwa lubonisa kuphela umendo wefayile apho ucwangciso luchazwe khona, oluluncedo ukuba ujonge ukuhlela ifayile, kodwa ayikuncedi. Kufuneka utshintshe ixabiso ngo "git config" usebenzisa iinketho "--system", "-global" okanye "-local". Ukhetho olutsha "--show-scope" lubonisa umxholo wenkcazo eguquguqukayo kwaye inokusetyenziswa ngokudityaniswa ne -show-origin:

    $ git --list --show-scope --show-original
    ifayile yehlabathi:/home/user/.gitconfig diff.interhunkcontext=1
    ifayile yehlabathi:/ikhaya/umsebenzisi/.gitconfig push.default=current
    […] local file:.git/config branch.master.remote=origin
    ifayile yendawo:.git/config branch.master.merge=refs/heads/master

    $ git config --show-scope --fumana-regexp 'diff.*'
    iglobal diff.statgraphwidth 35
    local diff.colormoved plain

    $ git config --global --unset diff.statgraphwidth

  • Kwiisetingi zokubopha iziqinisekiso Ukusetyenziswa kweemaski kwii-URL kuvumelekile. Naziphi na iisetingi ze-HTTP kunye neziqinisekiso kwi-Git zinokusetwa zombini kulo lonke uqhagamshelo (http.extraHeader, credential.helper) kunye noqhagamshelo olusekwe kwi-URL (credential.https://example.com.helper, credential.https://example. com.umncedi). Ukuza kuthi ga ngoku, amakhadi asendle anjenge *.example.com ayevunyelwe kuphela kwisetingi zeHTTP, kodwa ebengaxhaswanga kwiziqinisekiso. Kwi-Git 2.26, lo mahluko uyapheliswa kwaye, umzekelo, ukubophelela igama lomsebenzisi kuzo zonke ii-subdomains ongazichaza ngoku:

    [iinkcukacha "https://*.example.com"]

    igama lomsebenzisi = ttaylorr

  • Ukwandiswa kwenkxaso yovavanyo lwe-cloning engaphelelanga (i-clones engaphelelanga) iyaqhubeka, ikuvumela ukuba uthumele kuphela inxalenye yedatha kwaye usebenze ngekopi engaphelelanga yendawo yokugcina. Ukhupho olutsha longeza umyalelo omtsha "git sparse-checkout yongeza", ekuvumela ukuba wongeze abalawuli abathile ukuze usebenzise umsebenzi "we-checkout" kwindawo kuphela yomthi osebenzayo, endaweni yokudwelisa bonke abalawuli ngaxeshanye ngomyalelo "git". sparse-checkout iseti" (ungadibanisa uluhlu ngalunye, ngaphandle kokuphinda uluchaze uluhlu lonke ixesha ngalinye).
    Umzekelo, ukwenza umfuziselo wogcino lwegit/git ngaphandle kokwenza iiblobhu, ukuthintela ukuphuma kulawulo lweengcambu kuphela lwekopi esebenzayo, kunye nokuphawula ngokwahlukeneyo ukukhutshwa kwe "t" kunye "noxwebhu", ungakhankanya:

    $ git clone --filter=blob:none --incinci [imeyile ikhuselwe]:git/git.git

    $ cd git
    $ git sparse-checkout init --cone

    $ git sparse-checkout yongeza t
    ....
    $ git sparse-checkout yongeza uxwebhu
    ....
    Uluhlu lwe- $ git sparse-checkout
    amaxwebhu
    t

  • Ukusebenza komyalelo we "git grep", osetyenziselwa ukukhangela imixholo yangoku yendawo yokugcina kunye nohlaziyo lwembali, kuphuculwe kakhulu. Ukukhawulezisa ukukhangela, kwakunokwenzeka ukuskena iziqulatho zomthi osebenzayo usebenzisa iintambo ezininzi ("git grep -threads"), kodwa ukukhangela kwiinguqulelo zembali kwakunomsonto omnye. Ngoku lo mda ususiwe ngokuphumeza ukukwazi ukulinganisa imisebenzi yokufunda ukusuka kwindawo yokugcina into. Ngokungagqibekanga, inani leentambo libekwe lilingana nenani le-CPU cores, apho kwiimeko ezininzi ngoku ayifuni ukuseta ngokucacileyo inketho ethi "-threads".
  • Inkxaso eyongeziweyo yokugqitywa ngokuzenzekelayo kwegalelo le-subcommands, iindlela, amakhonkco kunye nezinye iingxoxo zomyalelo we "git worktree", okuvumela ukuba usebenze ngeekopi ezininzi zokusebenza zendawo yokugcina.
  • Inkxaso eyongeziweyo yemibala eqaqambileyo ene-ANSI ulandelelwano lokubaleka. Umzekelo, kwiisetingi zokuqaqambisa imibala "git config -color" okanye "git diff -color-moved" ungacacisa "% C(brightblue)" usebenzisa "--format" ukhetho lombala oblowu oqaqambileyo.
  • Kongezwe uhlobo olutsha lweskripthi fsmonitor-umlindi, ukubonelela ngokudityaniswa kwendlela Facebook Umlindi ukukhawulezisa umkhondo wotshintsho lwefayile kunye nokubonakala kweefayile ezintsha. Emva kokuhlaziya i-git iyafuneka buyisela hook kwindawo yokugcina.
  • Ukongezwa okulungiselelwe ukukhawulezisa iiclones ezingaphelelanga xa usebenzisa i-bitmaps
    (uomatshini bebitmap) ukunqanda uphendlo olupheleleyo lwazo zonke izinto xa ucofa imveliso. Ukukhangela iiblobho (β€”filter=blob:none and β€”filter=blob:limit=n) ngexesha le-cloning engaphelelanga iyenziwa ngoku.
    ngokukhawuleza ngokukhawuleza. I-GitHub ibhengeze iipetshi ezinolu lungiselelo kunye nenkxaso yovavanyo lwe-cloning engaphelelanga.

  • Umyalelo othi "git rebase" usiwe kumqolo owahlukileyo, kusetyenziswa indlela 'yokudibanisa' engagqibekanga (eyayifudula isetyenziselwa u-"rebase -i") endaweni yokuthi 'patch+apply'. Ii-backends ziyahluka ngeendlela ezincinci, umzekelo, emva kokuqhubeka nomsebenzi emva kokusombulula impixano (git rebase --continue), i-backend entsha inikezela ukuhlela umyalezo wokuzibophelela, ngelixa omdala usebenzisa umyalezo omdala. Ukubuyela kwisimo esidala, ungasebenzisa "--apply" ukhetho okanye usete i-'rebase.backend' eguquguqukayo yoqwalaselo ukuze 'ufake'.
  • Umzekelo womphathi weeparamitha zokuqinisekisa ezikhankanyiweyo nge.netrc incitshisiwe yaya kwifomu elungele ukusetyenziswa ngaphandle kwebhokisi.
  • Yongeza isicwangciso se-gpg.minTrustLevel ukuseta ubuncinci benqanaba lokuthembela kwizinto ezahlukeneyo ezenza uqinisekiso lomsayino wedijithali.
  • Kongezwe "--pathspec-from-file" ukhetho ukuya "git rm" kunye "git stash".
  • Ukuphuculwa kweesuite zovavanyo kuqhubekile kulungiselelo lokutshintshela kwi-SHA-2 hashing algorithm endaweni ye-SHA-1.

umthombo: opennet.ru

Yongeza izimvo