Serbestberdana pergala kontrola çavkaniya belavkirî Git 2.25

Berdeste serbestberdana pergala kontrolê ya çavkaniya belavkirî git 2.25.0. Git yek ji wan pergalên kontrolkirina guhertoya herî populer, pêbawer û bi performansa bilind e, ku amûrên pêşkeftina ne-xetî yên maqûl li ser bingeha şaxkirin û hevgirtinê peyda dike. Ji bo misogerkirina yekrêziya dîrokê û berxwedana li hember guhertinên paşverû, di her commit de hejandina nepenî ya tevahiya dîroka berê tê bikar anîn; di heman demê de gengaz e ku bi îmzeyên dîjîtal ên pêşdebiran tag û peymanên kesane jî were pejirandin.

Li gorî serbestberdana berê, guhertoya nû 583 guhertin pêk tîne, ku bi beşdariya 84 pêşdebiran hatî amadekirin, ji wan 32 ji bo yekem car beşdarî pêşkeftinê bûn. sereke nûbûnên:

  • Ihtîmala klonkirina qismî nêzîkê stabilîzasyon û amadebûna tevahî ye, ku dihêle hûn tenê beşek daneyê veguhezînin û bi kopiyek netemam a depoyê re bixebitin. Klonek tîpîk hemî daneyên ji depoyê kopî dike, tevî her guhertoya her pelê di dîroka guheztinê de. Ji bo depoyên pir mezin, kopîkirina daneyan dibe sedema zêdebûnek girîng di seyrûsefer û cîhê dîskê de, hetta ku pêşdebir tenê bi binkeyek pelan re eleqedar be. Ji bo ku meriv tenê beşek ji dara çavkaniya xebatê hêsantir bike, serbestberdana nû fermanek ceribandinek "sparse-checkout" û vebijarkek nû "--sparse" ji bo fermana "klone" destnîşan dike.

    Berê, pêvajoya klonkirina bijartî bi peywirê ve hate kirin parzûn ji bo fîlterkirina naveroka nehewce û vebijarka "-no-checkout" ji bo dagirtina pelên winda neçalak bike. Dûv re, berî pêkanîna operasyona danûstendinê, pêdivî bû ku mîhengê core.sparseCheckout çalak bikira û di pelê .git/info/sparse-checkout de lîsteyek ji qalibên rêyên jêderkirî diyar bike. Mînakî, ji bo klonekirina bê blob û pêşîlêgirtina derxistina pelan ji jêrderhênerên kûrahiya 2 an jî zêdetir, hûn dikarin bixebitin:

    git clone --filter=blob:none --no-checkout /your/depo/here repo
    $ cd depo
    $ cat >.git/info/sparse-checkout <EOF
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git checkout.

    Fermana nû "git sparse-checkout" kar pir hêsan dike û pêvajoya organîzekirina xebatê bi depoyek netemam li fermanên jêrîn kêm dike:

    git clone --filter=blob:none --sparse /your/depo/here repo
    git sparse-checkout set /rê/ber/çekirin/derketin

    Fermana sparse-checkout destûrê dide te ku hûn lîsteyek rêçikan ji bo danûstendinê (set) saz bikin bêyî ku bi destan .git/info/sparse-checkout mîheng bikin, û her weha navnîşa rêyên heyî (lîste) nîşan bidin û veqetandinên qismî çalak bikin an neçalak bikin (çalak / neçalak bike).

    Ji bo xweşkirina xebata bi depoyên pir mezin û navnîşên şablonan, "git config core.sparseCheckoutCone", ku qalibên destûr sînordar dike (li şûna qalibên .gitignore yên keyfî, hûn dikarin diyar bikin ka divê hemî rê û hemî pelên di binertektorek diyar de bêne kontrol kirin an na). Mînakî, heke depoyek mezin xwedan pelrêçek "A/B/C" be û hemî kar di jêrpelêktora "C" de be, wê hingê gava ku hûn moda sparseCheckoutCone çalak bikin, fermana "git sparse-checkout set A/B/". C" dê tevahiya naveroka "C" derxe, lê ji "A" û "B" ew ê tenê beşên ku ji bo xebitandina "C" hewce ne derxe.

  • Ji belgenameyê ("git rebase -h"), hemî referansên vebijarka "--parastin-hevgirtin" hatine rakirin, ku ew hatî betal kirin û divê li şûna wê were bikar anîn da ku komek commits koç bike.git rebase --rebase-hev dike".
  • Ji bo baştirkirina xwendina peyamên bi paçên ku ji navnîşên nameyê re hatine şandin, vebijarka "forma git-patch-veşart-ji-mijara danasînê" hate zêdekirin, gava ku were destnîşan kirin, paragrafa yekem ji nivîsara danasîna şaxê wekî mijar tê bikar anîn. nameya cover ji bo komek ji patch.
  • Piştgiriya bicihanîn ji bo karanîna hevgirtî ya fermana "git application -3way" û mîhenga "merge.conflictStyle" ("git application" naha şêwaza ravekirina pevçûnê ji merge.conflictStyle dihesibîne dema ku pêdivî ye ku piştî hewldana pevçûnê çareser bibe. ji bo sepandina pelek patchê li depoyê).
  • Koda pênasekirina fonksiyonê ya ku di operasyonên wekî "git diff/grep --show-function/-function-context" de tê bikar anîn ji bo piştgirîkirina diyarkirina sînorên fonksiyonê di bernameyên ziman de hate berfireh kirin. Elixir.
  • Vebijarkek nû li "git add", "git commit", "git reset" û fermanên din - "-pathspec-from-file" hate zêdekirin, ku dihêle ku meriv navnîşek rêçikan ji pelek an hêlek têketinê bar bike. , li şûna ku wan li ser rêza fermanê binivîsin.
  • Pirsgirêka tespîtkirina navan di asta pelrêça dema nivîsandina commitan de çareser bûye. Ger naveroka binerdekrêkûpêk li koka depoyê were veguheztin pênase nexebite.
  • Pêkanîna destpêkê ya fermana ji nû ve dîzaynkirin "git add -i" hate pêşniyar kirin, ku destûrê dide te ku hûn naveroka guhêrbar bi înteraktîf lê zêde bikin, ji Perl-ê ji nû ve hatî nivîsandin C. Xebatek wusa ya fermana "git add -p" didome.
  • Fermana "git log –graph" ji nû ve hatî çêkirin, wêneyek ASCII ya grafiyek bi dîroka guhertinên di depoyê de çêdike. Ji nû ve verastkirinê îmkan da ku meriv bi girîngî çêtir bike û hilberînê hêsan bike bêyî ku strukturê çîrokê berevajî bike, ku, mînakî, pirsgirêka wêneyê ku ji firehiya xeta termînalê dirêj dibe çareser kir.
  • Vebijarka "git log --format=.." dihêle hûn formata derketinê biguherînin,
    bi piştgirîya alayên "l/L" tê dirêj kirin da ku tenê beşek ji navnîşana e-nameyê ya ku li ber sembola "@" hatî destnîşan kirin nîşan bide (mînak, gava ku hemî pêşdebiran hemî e-name di heman domainê de hebin kêrhatî ye).

  • Binfermanek "set-url" li fermana "git submodule" zêde kir.
  • Di amadekariyên ji bo derbasbûnê de kîtên testê hatine nûve kirin
    algorîtmaya haşkirinê SHA-2 li şûna SHA-1.

Source: opennet.ru

Add a comment