Kuburitswa kweyakagoverwa sosi yekudzora system Git 2.26

Inowanikwa kuburitswa kweiyo distributed source control system git 2.26.0. Git ndeimwe yeanonyanya kufarirwa, anovimbika, uye akanyanya-kuita-shanduro dhizaini masisitimu anopa anochinjika asiri-mutsara ekuvandudza maturusi akavakirwa pamatavi uye nekubatanidza matavi. Kuve nechokwadi chekutendeseka kwenhoroondo uye kuramba kune shanduko yekuchinja, hashing yakazara yenhoroondo yese yapfuura mune imwe neimwe kuzvipira inoshandiswa, zvinogoneka zvakare kuonesa ma tag ega uye kuita nemasiginecha edhijitari kubva kuvagadziri.

Kuenzaniswa nekuburitswa kwekare, iyo vhezheni itsva yaisanganisira 504 shanduko, yakagadzirirwa nekubatanidzwa kwevagadziri makumi masere nemana, avo 64 vakatora chikamu mukusimudzira kekutanga. chikuru zvitsva:

  • Iyo default yachinjirwa kune shanduro yechipiri Git kutaurirana protocol, iyo inoshandiswa kana mutengi achibatana kure neGit server. Yechipiri vhezheni yeprotocol yakakurumbira pakupa kugona kusefa matavi uye ma tag padivi reseva, kudzoreredza rondedzero yakapfupikiswa yezvibatanidza kune mutengi. Pakutanga, chero murairo wekudhonza waigara uchitumira mutengi runyorwa ruzere rwemareferensi mune yese repository, kunyangwe mutengi aingovandudza bazi rimwe chete kana kutarisa kuti kopi yavo repository yaive yazvino. Imwe hunyanzvi hutsva kugona kuwedzera hunyanzvi hutsva kuprotocol sezvo hutsva hunoita hunowanikwa mubhokisi rekushandisa. Iyo kodhi yemutengi inoramba ichienderana neyekare protocol uye inogona kuramba ichishanda nemasevha matsva uye ekare, ichingodzokera kushanduro yekutanga kana sevha isingatsigire yechipiri.
  • Iyo "-show-scope" sarudzo yakawedzerwa kune "git config" kuraira, zvichiita kuti zvive nyore kuona nzvimbo inotsanangurwa mamwe marongero. Git inokutendera kuti utsanangure marongero munzvimbo dzakasiyana: mune repository (.git/info/config), mune dhairekitori remushandisi (~/.gitconfig), mune system-wide configuration file (/etc/gitconfig), uye kuburikidza nekuraira. mitsetse sarudzo uye nharaunda siyana. Paunenge uchiita "git config" zvakawoma kuti unzwisise kuti papi chaipo painotsanangurwa marongero aunoda. Kugadzirisa dambudziko iri, sarudzo ye "--show-origin" yaivepo, asi inongoratidza nzira yekuenda kufaira umo marongero anotsanangurwa, anobatsira kana iwe uchida kugadzirisa faira, asi hazvibatsire kana inoda kushandura kukosha kuburikidza ne "git config" uchishandisa sarudzo "--system", "-global" kana "-local". Sarudzo nyowani "--show-scope" inoratidza shanduko yetsanangudzo uye inogona kushandiswa pamwe chete ne -show-origin:

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

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

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

  • Muzvisungo zvekusunga magwaro Kushandiswa kwemasiki muURL kunobvumidzwa. Chero zvigadziriso zveHTTP uye zvitupa muGit zvinogona kusetwa zvese zvekubatanidza zvese (http.extraHeader, credential.helper) uye yeURL-based connections (credential.https://example.com.helper, credential.https: //example. com.mubatsiri). Kusvika parizvino, makadhi emusango akadai se *.example.com aingotenderwa kuseta eHTTP, asi aisatsigirwa pakusunga magwaro. MuGit 2.26, misiyano iyi inobviswa uye, semuenzaniso, kusunga zita rekushandisa kune ese subdomain iwe unogona ikozvino kutsanangura:

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

    username = ttaylorr

  • Kuwedzera kweyedzero yerutsigiro rwechikamu cloning (chikamu clones) inoenderera, ichikubvumidza iwe kuendesa chete chikamu che data uye kushanda nekopi isina kukwana repository. Kuburitswa kutsva kunowedzera murairo mutsva "git sparse-checkout add", iyo inokutendera kuti uwedzere madhairekitori ega ega kuti uise "checkout" mashandiro kune chikamu chemuti unoshanda, pane kunyora ese madhairekitori kamwechete kuburikidza nemurairo "git". sparse-checkout set" (unogona kuwedzera rimwe nerimwe dhairekitori, pasina kutsanangurazve runyorwa rwese nguva imwe neimwe).
    Semuyenzaniso, kubatanidza git/git repository pasina kuita mabhurobhu, kudzikisira kubuda kumudziyo chete wedhairekitori rekopi inoshanda, uye nekupatsanura kumaka kubuda kwe "t" uye "Documentation" madhairekitori, unogona kutsanangura:

    $ git clone --filter=blob:hapana --sparse [email inodzivirirwa]:git/git.git

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

    $ git sparse-checkout wedzera t
    ....
    $ git sparse-checkout wedzera Zvinyorwa
    ....
    $ git sparse-checkout rondedzero
    Documentation
    t

  • Kuita kwe "git grep" rairo, rinoshandiswa kutsvaga zvese zvirimo zvirimo mune repository uye nhoroondo yekudzokorora, yakavandudzwa zvakanyanya. Kuti ikurumidze kutsvaga, zvaive zvichikwanisika kuongorora zviri mukati memuti wekushanda uchishandisa tambo dzakawanda ("git grep -threads"), asi kutsvaga mukudzokorora kwezvakaitika kare kwaiva netambo imwe chete. Ikozvino mhedziso iyi yabviswa nekushandisa kugona kufananidza kuverenga mashandiro kubva kuchengetedzo yechinhu. Nekumisikidza, nhamba yeshinda inoiswa yakaenzana nenhamba yeCPU cores, iyo muzviitiko zvakawanda zvino haidi kunyatsoisa iyo "-threads" sarudzo.
  • Yakawedzerwa tsigiro yekupedzisa otomatiki yekuisa ye subcommands, nzira, zvinongedzo uye dzimwe nharo dze "git worktree" yekuraira, iyo inokutendera kuti ushande nemakopi akati wandei ekushanda eiyo repository.
  • Yakawedzera tsigiro yemavara akajeka ane ANSI kutiza kutevedzana. Semuenzaniso, mune zvigadziriso zvemavara akajeka "git config -color" kana "git diff -color-moved" unogona kutsanangura "% C (brightblue)" kuburikidza ne "--format" sarudzo yebhuruu inopenya.
  • Yakawedzera vhezheni itsva yescript fsmonitor-watchman, kupa kubatanidzwa nemuchina Facebook Watchman kukurumidza kuteedzera shanduko yefaira uye kutaridzika kwemafaira matsva. Mushure mekugadzirisa git inodiwa kutsiva hoko mune repository.
  • Yakawedzera optimizations kuti ikurumidze kusarudzika clones kana uchishandisa bitmaps
    (bitmap muchina) kudzivirira kutsvaga kwakazara kwezvinhu zvese kana kusefa zvinobuda. Kutarisa mabhurobhu (-filter=blob:none uye -filter=blob:limit=n) panguva yechikamu checloning yava kuitwa.
    zvakakurumidza. GitHub yakazivisa zvigamba neaya optimizations uye yekuyedza tsigiro yechikamu cloning.

  • Murairo we "git rebase" waendeswa kune imwe backend inoshandisa iyo default 'merge' mechanism (yaimboshandiswa "rebase -i") pachinzvimbo che'chigamba + shandisa'. Iyo yekumashure inosiyana mune dzimwe nzira diki, semuenzaniso, mushure mekuenderera mberi nekuvhiya mushure mekugadzirisa kunetsana (git rebase --continue), iyo nyowani yekumashure inopa kugadzirisa meseji yekuzvipira, nepo yekare yaingoshandisa meseji yekare. Kudzokera kumaitiro ekare, unogona kushandisa "--apply" sarudzo kana kuseta 'rebase.backend' configuration variable kuti 'apply'.
  • Muenzaniso wemubati wemaparamendi echokwadi anotsanangurwa kuburikidza ne.netrc yaderedzwa kuita fomu yakakodzera kushandiswa kunze kwebhokisi.
  • Yakawedzera iyo gpg.minTrustLevel kuseta yekuseta diki danho revimbo rezvinhu zvakasiyana-siyana zvinosimbisa siginecha yedhijitari.
  • Yakawedzerwa "--pathspec-from-file" sarudzo ku "git rm" uye "git stash".
  • Kuvandudzwa kwema test suites kwakaenderera mberi mukugadzirira shanduko kuenda kuSHA-2 hashing algorithm pachinzvimbo cheSHA-1.

Source: opennet.ru

Voeg