Famoahana ny rafitra fanaraha-maso loharano mizara Git 2.22

nampidirina famotsorana rafitra fanaraha-maso loharano mizara git 2.22.0. Git dia iray amin'ireo rafitra fanaraha-maso dikan-teny malaza indrindra, azo ianteherana ary avo lenta, manome fitaovana fampivoarana tsy misy tsipika miorina amin'ny sampana sy ny fampifangaroana. Mba hiantohana ny fahamarinan'ny tantara sy ny fanoherana ny fiovana mihemotra, dia ampiasaina ny hashing an-kolaka ny tantara teo aloha rehetra isaky ny commit, ary azo atao ihany koa ny manamarina ny marika tsirairay sy ny commit miaraka amin'ny sonia nomerika an'ny mpamorona.

Raha ampitahaina amin'ny famoahana teo aloha, ny dikan-teny vaovao dia nahitana fanovana 745, nomanina niaraka tamin'ny fandraisan'anjaran'ny mpamorona 74, izay ny 18 no nandray anjara voalohany tamin'ny fampandrosoana. tena fanavaozana:

  • Azo alaina hatramin'ny famoahana 1.18, ny maodely commit rebase vaovao "git rebase --rebase-merges" dia manolo ny safidy "--preserve-merges" taloha, izay tsy ampiasaina intsony. Ny fandidiana "git rebase" dia ampiasaina hanoloana andiana commit miaraka amin'ny commit fototra vaovao, ohatra, mba hamindra sampana mitokana izay mamolavola endri-javatra vaovao amin'ny toetry ny sampana master ankehitriny, izay ahitana fanamboarana fanampiny aorian'ny sampana. :

    o - o - o (ny endriko)

    /

    o - o - o - o - o (tompo)

    o - o - o (ny endriko)

    /

    o - o - o - o - o (tompo)

    Mba hitazomana ny firafitry ny sampana ao amin'ny sampana nifindra monina dia azo ampiasaina ny safidy "--preserve-merges", izay, rehefa mandeha amin'ny fomba interactive (git rebase -i --preserve-merges), dia namela ny fanovana ny tantara commit, fa tsy niantoka ny fiarovana tanteraka ny firafitry ny fitehirizana. Ny maody β€œ--rebase-merges” vaovao dia ahafahanao mitahiry ny firafitry ny fanovana ao amin'ny sampana mifindra monina, sady manome asa ifandrimbonana feno, ao anatin'izany ny famafana, ny fanangonana indray ary ny fanovana anarana.

    Ohatra, "--rebase-merges" Tsy mamela re-upload dia manolo-tena avy amin'ny sampana misaraka mankany amin'ny sampana master vaovao kokoa, raha mitazona ny firafitry ny sampana ao amin'ny sampana nifindra monina, ary manao fanovana vitsivitsy amin'ny naoty commit amin'ny lalitra.

  • Fanampiana fanampiny amin'ny famoronana sampana vaovao mifototra amin'ny vokatry ny famaritana ny fototry ny fitambaran'ny sampana roa hafa (fampitambatra fototra, mifamatotra amin'ny razambe iraisana) amin'ny fampiasana ny fanorenana "git branch new A...B" sy "git checkout -b new A...B", izay ahitana ny "A ...B" dia mamaritra ny fototra mampiray eo anelanelan'ny commits roa voafaritra, mitovy amin'ny hoe "git checkout A...B" dia manova ny HEAD mankany amin'ny base commit sy ny "diff A. ..B" dia mampiseho ny fiovana eo amin'ny commit "B" sy ny mitovy amin'ny commit "A" "Razambe.

    Ohatra, rehefa miasa amin'ny sampana my-feature misaraka, dia azo ampiasaina io endri-javatra io rehefa te hanomboka amin'ny sampana hafa ianao, ohatra, avy amin'ny toerana iray ao amin'ny sampana master izay nanamarika ny sampana my-feature. Talohan'izay dia nitaky ny fandinihana amin'ny tanana ny lozisialy fanovana izany, izay tsy mety raha manana tantaram-panovΓ na lehibe ianao, dia mandehana "git merge-base master my-feature" hanisa ny hash amin'ny base merge eo anelanelan'ny sampana master sy my-feature. ary mamorona sampana vaovao mifandraika amin'ny razambe iraisana " git branch my-other-feature hash." Ao amin'ny Git 2.22, azonao atao ny mampiasa ny syntax "git branch my-other-feature A...B" mba hamoronana sampana mifandraika amin'ny fototry ny fitambaran'ny sampana roa hafa;

  • Nampiana "git branch --show-current" safidy hanehoana ny anaran'ny sampana azo nandritra ny fandidiana;
  • Nampiana ny safidy "git checkout -no-overlay - dir", izay mamela, rehefa manao asa fandefasana, hitondra ny votoatin'ny lahatahiry dir amin'ny endrika mifanaraka tanteraka amin'ny toetry ny sampana master. Ohatra, raha misy rakitra ao amin'ny kopia eo an-toerana amin'ny lahatahiry dir izay tsy ao amin'ny sampana master, dia amin'ny alΓ lan'ny default rehefa manatanteraka ny "git checkout master - dir" dia havela, ary raha ny "--no-overlay" ” nofaritana ny safidy, ho voafafa;
  • Ny baiko "git diff" dia mampiasa API manerantany ho an'ny safidy parsing, izay ahafahana mampiray ny fitantanana safidy amin'ny fitaovana git hafa. Ohatra, ao amin'ny "git diff", ny safidy rehetra izao dia manana ny mpanohitra azy ("--function-context" sy "--no-function-context");
  • Nampiana ny fahafahana manivana ireo marika miitatra mipetaka amin'ny commits ao amin'ny famoahana "git log" ("trailer" - sainam-baovao fanampiny, toy ny Signed-off-by sy Co-authored-by). Azo atao ny manivana etikety amin'ny alalan'ny fanalahidy sy ny sandany, ohatra:
    "git log --pretty="%(trailer:key=Reviewed-by,valueonly)";

  • Nisy motera trace vaovao, Trace2, nampiana, manolotra endrika famoahana mora kokoa sy voalamina kokoa. Ny Trace2 dia ahafahanao manangona telemetry momba ny asa vita sy ny angon-drakitra momba ny asa ho an'ny famakafakana sy ny debugging amin'ny antsipiriany kokoa (ny mpampiasa dia omen'ny mpampiasa, tsy misy data alefa any ivelany);
  • Ny tatitra "git bisect" dia natao ho mora vakiana kokoa, izay ahitΓ na mazava kokoa ny fanoloran-tena misy olana ary aseho ny antontan'isa famintinana momba ny fanovana ho an'ny rakitra tsirairay (amin'ny haavon'ny isan'ny tsipika niova);
  • Ny heuristika amin'ny famaritana ny fanovΓ na anarana ny lahatahiry dia novolavolaina mba hanafoanana ny fametrahana diso ny fanovana anarana. Rehefa misy fisalasalana, ny lahatahiry toy izany dia voamarika ho mifanohitra;
  • Aseho ny fampitandremana rehefa manandrana mametraka marika amin'ny marika hafa ianao, izay matetika atao amin'ny fahadisoana ary mety hitarika amin'ny fametrahana ny marika amin'ny fanekena diso (ohatra, fananganana toy ny "git tag -f -m "hafatra nohavaozina" my-tag1 my- tag2β€³ dia hiteraka marika iray noforonina amin'ny tenifototra taloha, fa ny mpamorona kosa nanantena ny hametraka ny marika vaovao amin'ny commit tondroin'ny marika taloha);
  • Ny Generation dia azo ampiasaina ho an'ny tahiry bitmap (firafitry ny "reachability bitmaps" mifototra amin'ny kapila), izay mitahiry angon-drakitra momba ny andian-javatra misy ho an'ny commit tsirairay ary ahafahanao mamaritra haingana ny fisian'ny zavatra fototra. Ity rafitra ity dia mampihena be ny fotoana hanatanterahana ny asa fitadiavana angona (git fetch).

Source: opennet.ru

Add a comment