Turinys
Pasikeitimai Git Jie nėra tokie patys, kaip ir kitose valdymo ir versijų valdymo sistemose, nes išsaugojus tik tai, kas iš tikrųjų pasikeitė, jis sumažina valdymui sugeneruotų failų dydį ir suteikia daugiau judrumo.Visa tai kontroliuojantis aspektas yra indeksas kas yra atsakingas už tai, kas žino, kas, ką ir kada daro iš visų atliktų pakeitimų, todėl pridėjus skirtingus aspektus prie mūsų indeksas apie šaka skambinama įsipareigoti.
Kas yra įsipareigojimas?In Git Mes žinome, kad norėdami pridėti pakeitimą, turime atlikti įsipareigoti to paties, kai jis buvo įtrauktas į saugyklų indeksą. Tačiau kas yra a įsipareigoti tiksliai? Šis klausimas ne visada užduodamas sau nuo to laiko, kai mes Git tai tvarko gana aiškiai, bet a įsipareigoti yra tas kelias Git registruoja esamą saugyklos indekso būseną ir saugo ją atitinkamame objekte, tokiu būdu kiekvienas įsipareigoti ji yra kilusi iš ankstesnės, todėl struktūra, kuri nekeičiama, gali būti pakartotinai naudojama.
Išteklių valdymas, kuris tai daro taip greitai, yra lyginamas SHA1 Todėl, jei indekso elementai turi tą pačią maišą, jie ir toliau nesigilina į savo pakeitimus, nes yra identiški, todėl perimami tik iš tikrųjų pasikeitę failai.
Būdas, kuriuo įsipareigoja leidžia mums sukurti hierarchines struktūras, suteikiančias tikrumą gauti visų registruotų pakeitimų kilmę, taigi, jei laikysimės geriausios Git Mes niekada nepasiklysime, nes unikalūs identifikatoriai taip pat galime būti tikri, kad jei kuri nors funkcija sukėlė problemą, ją galima rasti toje vietoje, kur ji buvo įtraukta.
Mes pakomentavome, kaip įsipareigoja turėti maišą SHA1 paaiškėja, kad naudojant šią maišą jie tampa unikalūs ir nepakartojami, tai yra, jei mes turime įsipareigoti o kitoje saugykloje randama ta pati maiša, kad žinotume, jog ji yra ta pati įsipareigoti.
Dėl šios priežasties įsipareigoti taip pat laikoma atominis, tai yra, kaip atskiras vienetas, kuris saugo daugelio katalogų ar failų būseną, todėl galime kreiptis į įsipareigoti kaip vienetas mūsų saugykloje ir todėl kiekvieną iš jų galime traktuoti kaip elementą, kuris, nors ir yra susijęs su ankstesniu, yra unikalus.
Nors maišos SHA1 yra unikalus identifikatorius įsipareigoti, jo struktūra 40 raidžių ir skaitmenų gali reikšti problemą, kai norime bendrauti su kitu kūrėju ir tai paaiškinti įsipareigoti Mes kalbame.
Santykiniai pavadinimaiNorėdami išspręsti šią problemą, galime nustatyti giminingi vardai ir lengviau prisiminti įsipareigojaJie nepakeičia maišos, veikiau kaip etiketė, leidžianti mums juos atpažinti žmogiškiau.
Kalbėti apie paskutinį įsipareigoti iš šaka galime tiesiog remtis GALVA, nes tai visada bus susiję su naujausiais ir naujausiais įsipareigotiTačiau, kadangi ne visada to reikalaujame, pakanka naudoti pirmuosius maišos, nors ji ne visada bus unikali, todėl pridėję daugiau simbolių pasieksime atitinkamą unikalumą.
Tada pažiūrėkime komandą, kurią turime naudoti, kad pasiektume pastarąjį:
git log -1 -gana = online identifikatoriaus įsipareigojimas
Dabar kitame paveikslėlyje pamatysime, kaip mes identifikuojame a įsipareigoti mūsų bandymų saugykloje, todėl iš pradžių surasime, kuris yra SHA1 iš GALVA ir tada mes jį pavadinsime pirmaisiais simboliais, pažiūrėkime:
Ankstesniame pavyzdyje mes atradome įrankį Git tai gali būti labai naudinga ir yra žurnalo komandą, tai labai galinga, nes leidžia mums surasti skirtingus įsipareigoti greitai ir tiksliai, tačiau jis turi daug parametrų ir konfigūracijų, kurias iš pradžių gali būti sunku įsiminti, tačiau norint jį naudoti nereikia visų jų išmokti, galime po truputį pereiti prie to naudoti.
Jei norime pamatyti įsipareigojimų istoriją, atlikite šiuos veiksmus:
git log branchname
Su tuo mes gausime išsami informacija apie istoriją mūsų šaka ir jų įsipareigojaPažiūrėkime, kaip tai atrodo mūsų konsolėje turimų testų saugykloje:
Tada pastebime, kaip įsipareigoja yra organizuojami nuo naujausių iki seniausių, tai leidžia šiek tiek pamatyti istorinę pokyčių, kuriuos patyrė šaka pasirinktas peržiūrėti istorinį žurnalą.
Kadangi darbas prie konsolės kartais yra šiek tiek sunkus, nors tai labai būtina, Git siūlo įrankį, leidžiantį peržiūrėti jo istoriją įsipareigoja grafiškai ir yra gitk nėra antrinis įsakymas Git pavyzdžiui, žurnalą, kurį jau matėme, tačiau tai yra nepriklausoma komanda ir leidžia mums gauti daugiau informacijos apie filialą ir jo istoriją.
Norėdami jį naudoti, mes tiesiog turime vykdyti šią komandą:
gitk pavadinimasŠakos
Pažiūrėkime, kaip jo vykdymas atrodo konsolėje:
Nors gali atrodyti, kad nieko neįvyko, netrukus gausime langą su prašoma grafika šaka nurodyta, kaip matome šioje ekrano kopijoje:
DIDELIS
Galime pastebėti, kad mes turime daug daugiau detalių, be to, kad pagerėja jos vizualizacija.Nuorodos Y Simrefai priklauso nuorodos Y simbolinės nuorodos atitinkamai pirmasis atitinka identifikatorių SHA1 objekto rėmuose mūsų saugykloje, kita vertus, antrasis netiesiogiai atitinka objektą, nepaisant jo pavadinimo, jis taip pat yra nuoroda.
Šią nuorodų struktūrą labai svarbu žinoti, nes tai leis mums suprasti mūsų katalogo struktūrą įsipareigoja Y šakos viduje Git, kurie yra saugomi kataloge .git / ref.
Simbolinės nuorodos kūrimasJei norime aiškiai sukurti a simbolinė nuoroda tiesiog naudok komandą git simbolinis-ref, ir nors įmanoma naudoti tokius pavadinimus kaip GALVA šioms nuorodoms nepatartina, nes galų gale jos gali sukelti painiavą, kuri gali pakenkti mūsų saugyklai.
Galiausiai pažiūrėkime, kaip atrodo šios komandos vykdymas, kai ją pritaikome savo bandymų saugykloje:
Kitas įdomus aspektas įsipareigojayra tai, kad galime dirbti giminingi vardaiDėl to labai paprasta rasti įsipareigojimų intervalus, pavyzdžiui, jei norime rasti tai, kas egzistuoja tarp tam tikro laikotarpio peržiūrų, tai galime padaryti.
Norėdami tai pasiekti, turime naudoti tik filialo pavadinimą ir simbolį ^ ir revizijos numeris. Pavyzdžiui meistras ^ kur kalbame apie priešpaskutinį pakeitimą, padarytą šaka meistras.
Saugyklos istorijaTokiu būdu galėsime pereiti per visą savo saugyklos istoriją, o tai suteikia mums galimybę pasiekti, palyginti su įsipareigoja kurie leido mums turėti dabartinį, jei laikysimės struktūros meistras 2 nuves mus pas antrąjį tėvą įsipareigoti, tai yra tas, kuris davė gyvenimą lygiagrečiai, taip pat su ~ mes galime pasiekti dabartinio įsipareigojimo tėvo tėvą, tai yra senelį, tam tikru būdu įvardyti jį genealogijoje.
Pavyzdys gali būti meistras 2 ~ 3 Norėdami nurodyti istorinius mūsų saugyklos pokyčius, jei norime gauti santykinio įsipareigojimo pavadinimą, tiesiog turime naudoti šią komandą:
git rev-parse RelativeName
Tai grąžins SHA1 iš įsipareigoti prie kurio priėjome. Toliau esančiame paveikslėlyje pažiūrėkime, kaip galime gauti dabartinio įsipareigojimo pavadinimą iš pagrindinio ir su meistras ~ pirmojo to paties tėvo, kuris būtų tas pats, vardas įsipareigoti nuo ko pradedame:
Tada pastebėjome, kaip mums pavyko gauti du SHA1 skiriasi ir galioja mūsų saugykloje, tik naudojant giminingi vardai.
Baigę šią pamoką, pristatėme naujas koncepcijas apie tai, kas įsipareigoja viduje GitTai suteikia mums galimybę geriau suprasti mūsų saugyklų struktūrą, todėl organizacija atrodys logiškesnė, todėl galime būti daug efektyvesni valdydami savo kodo pakeitimus. Taip, kaip Git valdydamas skirtumus, jis yra toks ypatingas, todėl jis tapo vienu iš pirmaujančių šiuolaikinių technologijų versijų valdytojų.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką