Нашри системаи идоракунии сарчашмаҳои тақсимшудаи Git 2.22

муаррифӣ карда шуд озод кардани системаи идоракунии сарчашмаҳои тақсимшуда git 2.22.0. Git яке аз маъмултарин, боэътимод ва сермахсули системаҳои идоракунии версия мебошад, ки асбобҳои тағйирпазири рушди ғайрихаттӣ дар асоси шохаҳо ва муттаҳидшавиро таъмин мекунад. Барои таъмини якпорчагии таърих ва муқовимат ба тағйироти ретроактивӣ, хэшинги ғайримустақими тамоми таърихи қаблӣ дар ҳар як супориш истифода мешавад ва инчунин мумкин аст, ки тегҳо ва ӯҳдадориҳои инфиродӣ бо имзои рақамии таҳиягарон тасдиқ карда шаванд.

Дар муқоиса бо нашри қаблӣ, версияи нав 745 тағиротро дар бар мегирад, ки бо иштироки 74 таҳиягар омода шудааст, ки 18 нафари онҳо бори аввал дар таҳия ширкат кардаанд. асосӣ навовариҳо:

  • Аз замони нашри 1.18 дастрас аст, режими нави барқарорсозии commit "git rebase --rebase-merges" варианти кӯҳнаи "--preserve-merges" -ро иваз мекунад, ки ҳоло аз кор мондааст. Амалиёти "git rebase" барои иваз кардани як қатор ӯҳдадориҳо бо ӯҳдадории нави базавӣ истифода мешавад, масалан, барои интиқол додани як филиали алоҳида, ки баъзе хусусияти навро ба ҳолати кунунии филиали асосӣ таҳия мекунад, ки ислоҳҳои пас аз филиал иловашударо дар бар мегирад. :

    о - о - о (хусусияти ман)

    /

    о - о - о - о - о (устод)

    о - о - о (хусусияти ман)

    /

    о - о - о - о - о (устод)

    Барои нигоҳ доштани сохтори шоха дар шохаи муҳоҷиршуда, пештар имкони "--preserve-merges" -ро метавон истифода бурд, ки ҳангоми кор дар реҷаи интерактивӣ (git rebase -i --preserve-merges), таҳрири таърихи содиротро иҷозат медод, аммо ба пурра нигох доштани структураи анборхо кафолат намедихад. Реҷаи нави "--rebase-merges" ба шумо имкон медиҳад, ки сохтори тағиротро дар шохаи интиқолшаванда нигоҳ доред ва ҳамзамон маҷмӯи пурраи амалиётҳои интерактивиро, аз ҷумла нест кардан, гурӯҳбандӣ кардан ва тағир додани номгузорӣ таъмин кунед.

    Масалан, "--rebase-merges" Ин имкон медиҳад, ӯҳдадориҳоро аз як филиали алоҳида ба филиали навтари асосӣ бор кунед, дар ҳоле ки сохтори филиал дар филиали муҳоҷиршуда нигоҳ дошта мешавад ва ба ёддоштҳои ӯҳдадориҳо дар вақти парвоз баъзе тағйирот ворид кунед.

  • Дастгирии иловашуда барои эҷоди филиали нав дар асоси натиҷаи муайян кардани заминаи якҷояшавии ду шохаи дигар (базаи муттаҳидшавӣ, пайвастшавӣ ба аҷдоди умумӣ) бо истифода аз конструксияҳои "git branch new A...B" ва "git checkout -b new" A...B", ки дар он "A ...B" муайян кардани заминаи муттаҳидшавӣ байни ду ӯҳдадориҳои мушаххасро дар бар мегирад, ба он монанде, ки чӣ гуна "git checkout A...B" HEAD-ро ба ӯҳдадориҳои асосӣ интиқол медиҳад ва "фарқияти А. ..B" тағиротро байни ӯҳдадории "B" ва ҳамон тавре ки "А" "Аҷдод" нишон медиҳад.

    Масалан, ҳангоми кор дар як шохаи хусусияти ман, ин хусусият метавонад истифода шавад, вақте ки шумо мехоҳед аз шохаи дигар оғоз кунед, масалан, аз ҳамон ҷое дар шохаи асосӣ, ки шохаи хусусияти ман аз он санҷида шудааст. Пештар, ин ба таври дастӣ тафтиш кардани сабти тағиротро талаб мекард, ки агар шумо таърихи зиёди тағирот дошта бошед, нороҳат буд, пас иҷро кардани "git merge-base master my-feature" барои ҳисоб кардани хэши пойгоҳи якҷоякунӣ байни шохаҳои мастер ва ман-функсия. ва эҷоди як шохаи нав нисбат ба аҷдоди умумӣ " git branch my-diger-feature hash." Дар Git 2.22, шумо метавонед синтаксиси "git branch my-other-feature A...B" -ро барои сохтани шоха нисбат ба заминаи якҷояшавии ду шохаи дигар истифода баред;

  • Опсияи "git branch --show-current" барои нишон додани номи филиал, ки ҳангоми амалиёти касса ба даст омадааст, илова карда шуд;
  • Опсияи "git checkout —no-overlay — dir" илова карда шуд, ки имкон медиҳад, ки ҳангоми иҷрои амалиёти касса, мундариҷаи директорияи dirро ба шакле, ки ба ҳолати филиали асосӣ мувофиқат мекунад, овардан мумкин аст. Масалан, агар дар нусхаи маҳаллии директорияи dir файле мавҷуд бошад, ки дар шохаи асосӣ набошад, пас ба таври нобаёнӣ ҳангоми иҷрои "git checkout master - dir" он боқӣ мемонад ва агар "--no-overlay" ” хосият муайян карда шудааст, он нест карда мешавад;
  • Фармони "git diff" API-и универсалиро барои таҳлили вариантҳо истифода мебарад, ки имкон медиҳад коркарди опсия бо дигар утилитаҳои git муттаҳид карда шавад. Масалан, дар “git diff” ҳама вариантҳо акнун антагонистҳои худро доранд (“--function-context” ва “--no-function-context”);
  • Имконияти филтр кардани барчаспҳои васеъ, ки ба ӯҳдадориҳо дар баромади "git log" замима шудаанд ("трейлер" - парчамҳои иттилоотии иловагӣ, ба монанди имзои хомӯш ва ҳаммуаллифӣ). Ин мумкин аст, ки тамғакоғазҳоро ҳам аз рӯи калид ва ҳам арзиш филтр кунед, масалан:
    "git log --pretty="%(трейлерҳо:калид=Танҳо баррасишуда,вазни арзиш)";

  • Муҳаррики нави пайгирӣ, Trace2 илова карда шуд, ки формати бештар фасеҳ ва сохторбандии баромадро пешниҳод мекунад. Trace2 ба шумо имкон медиҳад, ки телеметрияро дар бораи амалиётҳои иҷрошуда ва маълумот оид ба иҷроиш барои таҳлили муфассал ва ислоҳи ислоҳот ҷамъоварӣ кунед (корбар аз ҷониби корбар таъин карда мешавад, ягон маълумот ба берун фиристода намешавад);
  • Ҳисоботи "git bisect" бештар хондашаванда карда шуд, ки дар он ӯҳдадориҳои мушкилот ҳоло равшантар нишон дода шудаанд ва омори ҷамъбастии тағирот барои ҳар як файл (дар сатҳи шумораи сатрҳои тағирёфта) намоиш дода мешавад;
  • Эвристика барои муайян кардани номгузории директорияҳо барои бартараф кардани насби бардурӯғи тамғакоғазҳо аз нав кор карда шуданд. Вақте ки шубҳа доред, чунин феҳристҳо ҳоло ҳамчун зиддият қайд карда мешаванд;
  • Ҳангоми кӯшиши насб кардани тег дар теги дигар огоҳӣ нишон дода мешавад, ки одатан бо иштибоҳ анҷом дода мешавад ва метавонад боиси гузоштани тег дар супориши нодуруст гардад (масалан, сохтмон ба мисли "git tag -f -m "хабари навсозӣ" my-tag1 my-tag2″ боиси эҷод шудани тег дар теги кӯҳна мегардад, дар ҳоле ки таҳиягар интизор дошт, ки теги нав дар ӯҳдадорие, ки теги кӯҳна нишон дода шудааст, насб карда шавад);
  • Насл барои анборҳои битмап (сохтори "харитаҳои битмапӣ" ба диск асосёфта) фаъол аст, ки маълумотро дар бораи маҷмӯи объектҳои барои ҳар як супориш дастрас нигоҳ медорад ва ба шумо имкон медиҳад, ки мавҷудияти объекти асосиро зуд муайян кунед. Ин сохтор вақти иҷрои амалиёти ҷустуҷӯи маълумотро (git fetch) ба таври назаррас коҳиш медиҳад.

Манбаъ: opennet.ru

Илова Эзоҳ