Jei esate vienas iš milijonų kūrėjų bendruomenėje, greičiausiai jau esate girdėję apie koncepcija versijos valdymo. Tai galingas įrankis ar sistema, padedanti jums rūpintis savo darbu, leidžianti greitai judėti failuose, dokumentuose ir kitoje su jūsų projektu susijusios informacijos rinkime. Rinkoje yra daugybė įrankių, skirtų tokio pobūdžio darbams, tiek nuosavų, tiek atvirojo kodo. „Git“ yra vienas populiariausių ir plačiausiai naudojamas versijų valdymo sistemos šiandien pasaulyje ir stulbinantis projektų skaičius priklauso nuo „Git“ valdant versijas. Git yra nemokama ir atviro kodo paskirstyta versijų valdymo sistema, skirta stebėti kodo pokyčius programinės įrangos kūrimo metu.
„Git“ projektą vaizduoja duomenų struktūra, vadinama saugykla, kurioje saugoma visa su projektu susijusi informacija, įskaitant visą projekto istoriją nuo jo pradžios. Jis seka visus laikui bėgant atliktus failų pakeitimus, sudarydamas laiko juostą tęsdamas projektą. Savo ruožtu saugyklą sudaro atskirų projekto turinio momentinių nuotraukų rinkinys - failų ir saugyklų rinkinys - vadinamieji įsipareigojimai. Kai norite pasidalinti savo projekto plėtra su pasauliu, turite tai padaryti stumti iki nuotolinio valdymo pulto, prie kurio turite rašymo prieigą. Jūsų vietiniai filialai nėra automatiškai sinchronizuojami su nuotolinėmis saugyklomis - turite aiškiai stumti filialus, kuriais norite dalytis.
„Git“ laiko savo duomenis labiau panašiais į momentinių nuotraukų rinkinį, pavyzdžiui, į mini failų sistemą arba į projekto, vadinamo „commits“, versijas. Kiekvieną kartą, kai įsipareigojate arba bet kuriuo metu išsaugote savo projekto būseną, „Git“ iš esmės nufotografuoja, kaip šiuo metu atrodo jūsų failai, ir išsaugo nuorodą į tą momentinę nuotrauką. A įsipareigoti objekte yra kiekvieno saugykloje atlikto pakeitimo metaduomenys, įskaitant autorių, vykdytoją, įsipareigojimo datą ir žurnalo pranešimą. Kiekvienas įsipareigojimas nurodo medžio objektą, kuris užfiksuoja saugyklos būseną tuo momentu, kai įvykdytas įsipareigojimas, viskas vienoje momentinėje nuotraukoje. Keičiant kodą, jūs sukuriate saujelę įsipareigojimų - atskirą įsipareigojimą kiekvienam atliktam pakeitimui. „Git“ kiekvienam priskiria unikalų ID, kuris seka ką, kada ir kas iš jūsų atliktų pakeitimų.
Kiekvienas kūrėjas turi savo privačią saugyklą, kurioje gali stebėti jų pokyčius. Jūs atliekate pakeitimus vietoje ir, kai esate pasirengę juos bendrinti su kitais kūrėjais, vėl juos nukreipiate į saugyklą, kurią visi bendrinate. „Commit“ išsaugo pakeitimus, kuriuos atlikote tik vietinėje saugykloje, bet ne nuotolinėje saugykloje. Jūsų įsipareigojimai nėra automatiškai sinchronizuojami su nuotoline saugykla - turite aiškiai įvesti įsipareigojimus, kuriuos norite bendrinti. Kai naudojate „push“ komandą, pakeitimus pritaikote aukštesnio lygio saugykloje. Kiekvienas atvirojo kodo projektas turi savo būdą priimti pakeitimus. Kai kuriuose projektuose naudojama visiškai paskirstyta versijų valdymo sistema, kai tik vienas asmuo gali perduoti pagrindinės talpyklos pakeitimus, kol yra bendros saugyklos modelis, kuriame visi kūrėjai gali pereiti prie bendros saugyklos.
- Įstūmimas ateina po įsipareigojimo. „Git“ įsipareigojimų įrašai ir stebi saugyklos pakeitimus su kiekvienu įvykio tašku į medžio objektą, kuris užfiksuoja saugyklos būseną tuo momentu, kai buvo atliktas įsipareigojimas, viskas vienoje momentinėje nuotraukoje. Bet įsipareigojimas išsaugo pakeitimus tik vietinėje saugykloje, bet ne nuotolinėje saugykloje. „Git push“ atnaujina atliktus pakeitimus ir leidžia siųsti juos į nuotolinę saugyklą, kur prie jų gali prisijungti visi kūrėjai. Kai naudojate „push“ komandą, ji tiesiog atnaujina jūsų pakeitimus ankstesnėje saugykloje.
- Git įsipareigojimai yra vietinė reikšmė, jie įrašomi tik mašinoje, kurioje faktiškai įvykdomi įsipareigojimai. „Git įsipareigoti“ komanda naudojama liepti „Git“ išsaugoti pakeitimus vietinėje saugykloje, o prieš naudodami „git įsipareigoti“ komandą, turite konkrečiai pasakyti „Git“, kuriuos pakeitimus norite įtraukti į įsipareigojimą. Galite naudoti komandą „git push“, kad vietinėje saugykloje įvykdytumėte įsipareigojimus į nuotolinę saugyklą. „Push“ komanda atnaujina naujus vietinius įsipareigojimus nuotoliniame serveryje. Spaudimui reikalingi du argumentai: nuotolinis vardas (kilmė) ir filialo pavadinimas (pagrindinis).
Trumpai tariant, įsipareigojimas yra pagrindinis „Git“ pokyčių vienetas. Skirtingai nuo kitų centralizuota versijų valdymo modeliai, „Git“ savo duomenis laiko labiau panašiais į momentinių nuotraukų rinkinį, kuris vadinamas „commits“. Jie yra tarsi viso saugyklos turinio momentinė nuotrauka kartu su visa informacija, susijusia su projektu, ir šios saugyklos būsenos santykiu su kitomis įrašytomis būsenomis, nes turinys laikui bėgant keitėsi. Įsipareigojimo objekte yra kiekvieno saugykloje atlikto pakeitimo metaduomenys, įskaitant autorių, vykdytoją, įsipareigojimo datą ir žurnalo pranešimą. Tačiau „pühend“ pakeitimus išsaugo tik vietinėje saugykloje, bet ne nuotolinėje saugykloje. „Git push“ atnaujina atliktus pakeitimus ir leidžia siųsti juos į nuotolinę saugyklą, kur prie jų gali prisijungti visi kūrėjai.
Copyright © Visos Teisės Saugomos | asayamind.com