PHPPamokos.lt


6. Pakeitimų įkėlimas į GitHub: git push

Judame toliau, ir šioje pamokoje išmoksime jau įkelti savo pakeitimus į nutolusią repozitoriją - į GitHub ar Bitbucket. Taip pat sužinosime, kaip parsisiųsti ne tik pačią repozitoriją bet ir jos naujausius pakeitimus.


Registruojamės į GitHub

Kad galėtume pasipraktikuotis, jau dabar reikia susikurti savo vartotoją nutolusioje sistemoje - kaip pavyzdį visgi paimsime GitHub. Registracija yra nemokama ir labai paprasta - tiesiog užeikite į https://github.com:

Kadangi dar neturiu specialaus PHPPamokos.lt GitHub vartotojo, tai pats laikas jį susikurti, tuo pačiu parodysiu jums visą registracijos kelią su screenshotais. Antrasis žingsnis - pasirinkti mokėjimo planą.

Neišsigąskite, mokėti nereikia. Bent kol kas. GitHub galima naudotis visiškai nemokamai, bet su viena sąlyga - visos jūsų repozitorijos turi būti viešos, negali būti privačios. Kitaip tariant, negalėsite paslėpti savo kodo kažkokiu slaptažodžiu ar panašiai - jei jau keliate į GitHub, tai praktiškai tampa atviro kodo sistema. Bet pradžioje jums tai nerūpi - jūsų kodo įkėlimo ir repozitorijų pabandymai tikrai neturėtų būti niekam įdomūs.

Tiesa, šioje vietoje pranašumą turi kita mano anksčiau paminėta repozitorijų saugojimo sistema Bitbucket - ji leidžia privačias repozitorijas nemokamai. Bet GitHub yra populiaresnis, dėl to visus pavyzdžius rodysiu būtent su juo.

Taigi, kol kas pasirenkame mums automatiškai priskirtą nemokamą planą ir žygiuojame toliau - mūsų vartotojas jau sukurtas!

Galite savo nuožiūra pasiskaityti dokumentaciją ar kitas skiltis, o aš eisiu iškart prie reikalo - sukurkime savo repozitoriją.


Kuriame savo repozitoriją

Tam reikia mūsų el.pašto adreso patvirtinimo (paspauskite nuorodą jums atsiųstame laiške iš GitHub), o toliau spaudžiame "New Repository" mygtuką dešinėje ir matome štai tokią formą:

Jei pastebėjote, kiekvienos viešos repozitorijos "pavadinimas" susideda iš dviejų dalių - prieš pasvirajį brūkšnį ir po jo. Tai šioje formoje puikiai pavaizduotas jų skirtumas ir paskirtis - pirmasis yra jūsų vartotojo vardas, o antrasis repozitorijos pavadinimas. Taigi, įrašome pavadinimą, ir šiuo atveju mano būsimos repozitorijos pilnas pavadinimas bus PHPPamokos/git-kursas.

Taip pat galite įrašyti aprašymą (jis bus matomas viešai), o kitų laukų galite kol kas neliesti - jų paskirtį galėsite pasinagrinėti vėliau. Spaudžiame "Create Repository".

Viskas, repozitorija sėkmingai sukurta - dabar GitHub mums siūlo detalią instrukciją, kaip įkelti savo kodą iš lokalaus kompiuterio į šią GitHub repozitoriją, bet apie tai pakalbėkime atskirai detaliau.


Pakeitimų įkėlimas į repozitoriją - git push

Atėjo laikas prisiminti mūsų turimą lokalią repozitoriją Gitproject, ir dabar mūsų tikslas - sukelti jos pakeitimus į GitHub.
Kam to reikia? Ogi tam, kad galėtumėte failus pasiimti iš kito kompiuterio arba tą galėtų padaryti koks jūsų kolega. Čia yra panašiai kaip įkėlimas į FTP ar į kokį Dropbox, bet, kaip jau minėjau pačioje kurso pradžioje, tokios versijų kontrolės naudojimo privalumas - kad visi pakeitimai fiksuojami, gali būti atsekti ir grąžinti atgal.

Taigi, grįžtame prie Git Bash ir žiūrime, koks mūsų repozitorijos statusas:

Rašo, kad visi pakeitimai "sukommitinti" ir naujų pakeitimų nerasta. Gerai. Dabar pats laikas susieti mūsų lokalią repozitoriją su ta, kurią ką tik sukūrėme per GitHub.
Tam mums reikia sužinoti mūsų GitHub repozitorijos URL adresą - lygiai taip pat kaip naudojome Laravel repozitorijos URL adresą praeitoje "klonavimo" pamokoje. Tai mums jau parašė tą adresą pačioje instrukcijoje ekrane:
https://github.com/PHPPamokos/git-kursas.git
Ir dabar paleidžiame tokią komandą:
git remote add origin https://github.com/PHPPamokos/git-kursas.git
Ta komanda reiškia, kad pridedame naują nutolusią ("remote") direktoriją, su kuria bus susieta mūsų šita lokali repozitorija.
Pati komanda jokio rezultato neišves, jei ji įvykdyta sėkmingai - tiesiog nepamatysite jokios klaidos. O toliau - įkeliame pačius pakeitimus su komanda git push, tiksliau su tokiais parametrais:
git push -u origin master
Trumpai paaiškinsiu: ši komanda reiškia, kad jūs įkeliate pakeitimus į nutolusią repozitoriją origin ir į jos atšaką master. Apie atšakas ("branches") kalbėsime atskiroje pamokoje, kol kas jums nereikėtų į tai gilintis - tiesiog žinokite, kad master yra rezervuotas žodis, skirtas pagrindinei atšakai nusakyti.

Taigi, vykdome komandą git push ir, spėkite ką - mūsų prašo vartotojo vardo ir slaptažodžio!

Viskas teisingai - kai sakiau, kad mūsų GitHub repozitorija yra vieša, turėjau omenyje kad ją visi gali parsisiųsti, bet pakeitimus įkelti gali tik GitHub vartotojai - jūs pats, ir tie vartotojai, kuriems asmeniškai priskirsite tokias teises. Taigi, įrašome savo vartotoją (mano atveju - PHPPamokos) ir slaptažodį:

Štai ir rezultatas - pakeitimai įkelti, dabar pažiūrėkime kaip atrodo mūsų repozitorija perkrovus GitHub puslapį:

Kaip matote, yra įrašyti pakeitimai - 4 commit'ai, yra nurodytas jų autorius ir laikas, kada paskutinį kartą buvo pakeisti failai. Paspaudus commits, galime pažiūrėti ir visų pakeitimų sąrašą:

Maža to, galime paspausti kiekvieną iš jų ir peržiūrėti, kokie būtent failai buvo pakeisti, ir netgi kurios būtent eilutės:

Štai čia ir pasireiškia versijų kontrolės naudojimo privalumai prieš FTP, Dropbox ar kitokius failų saugojimo būdus - čia kaip ant delno matosi visa pakeitimų istorija, su visomis reikalingomis detalėmis. Negi nesmagu?

Taigi, sėkmingai įkėlėte savo pakeitimus į GitHub repozitoriją, ir nuo šiol galite su ja dirbti toliau, daryti tolimesnius pakeitimus ir vėl juos įkelti į GitHub - vėl git commit ir po to git push ("origin master" jau nurodinėti nebereikės - jis jau priskirtas, nuo šiol jums užteks rašyti tiesiog git push be jokių papildomų parametrų).

Toliau: visas šis darbas prasmingiausias, jei su repozitorija dirba daugiau negu vienas žmogus. Tai būtent apie tą pakalbėsime kitoje pamokoje.


(c) 2015-2018. Visais klausimais kreipkitės povilas@laraveldaily.com