Pradžia / Internetas ir ryšys / GitHub – ką reikia žinoti pradedančiajam

GitHub – ką reikia žinoti pradedančiajam

Jei bent kiek domiesi programavimu, anksčiau ar vėliau tikrai išgirsi žodį „GitHub”. Kažkas paminės commit’ą, kažkas repo, dar kitas kalbės apie pull request’us – ir jei nesi su tuo susidūręs, gali pasijusti kaip atėjęs į pokalbį svetima kalba. Bet nesijaudink, viskas čia daug paprasčiau, nei atrodo iš pirmo žvilgsnio. Šiame straipsnyje pabandysiu paaiškinti, kas ta GitHub platforma, kodėl ji tokia svarbi ir kaip su ja pradėti dirbti, nekeliant per didelio streso.

Kas iš tikrųjų yra GitHub

Pirmiausia svarbu atskirti dvi sąvokas – Git ir GitHub. Daugelis pradedančiųjų jas supainioja, o tai visiškai suprantama, nes jos glaudžiai susijusios, bet nėra tas pats.

Git yra versijų kontrolės sistema. Tai programa, kuri veikia tavo kompiuteryje ir seka visus pakeitimus, kuriuos darai savo kodo failuose. Įsivaizduok, kad rašai didelį projektą ir kiekvieną kartą, kai padarai reikšmingą pakeitimą, gali „išsaugoti” tą būseną kaip atskirą tašką laiko juostoje. Jei kažkas sugenda, visada gali grįžti atgal į tą tašką, kai viskas dar veikė. Būtent tai ir daro Git.

GitHub savo ruožtu yra svetainė (ir platforma), kuri leidžia tave Git repozitorijas talpinti internete. Tai reiškia, kad tavo kodas nebėra tik tavo kompiuteryje – jis atsiduria debesyje, prie kurio gali prieiti iš bet kur, dalintis su kitais ir dirbti komandoje. GitHub taip pat prideda daug papildomų funkcijų – klaidų sekimą, projektų valdymą, automatizuotus testus ir dar daugiau.

Trumpai tariant: Git – tai įrankis, GitHub – tai vieta, kur tą įrankį naudoji kartu su kitais žmonėmis internete.

Kodėl visi apie tai kalba

GitHub tapo tarsi neoficialiu programuotojų socialiniu tinklu. Ten žmonės dalinasi savo projektais, prisideda prie atvirojo kodo iniciatyvų, ieško darbo (nes darbdaviai dažnai žiūri į kandidato GitHub profilį kaip į savotišką portfelį) ir mokosi vieni iš kitų.

Beveik visos didelės technologijų kompanijos – Microsoft (kuriai, beje, GitHub ir priklauso), Google, Meta – talpina dalį savo kodo viešai GitHub platformoje. Tai leidžia bet kam pažiūrėti, kaip veikia realūs, dideli projektai, o ne tik mokomieji pavyzdžiai.

Be to, GitHub yra tarsi pasaulinis archyvas atvirojo kodo projektams. Norint sukurti svetainę, programą ar net operacinę sistemą, dažnai naudojamos bibliotekos ir įrankiai, kurie yra laisvai prieinami būtent per GitHub. Be šios platformos šiuolaikinis programavimas atrodytų visai kitaip – daug lėčiau ir uždaresnio pobūdžio.

Pagrindinės sąvokos, kurias verta įsiminti

Prieš pradedant naudotis platforma, verta susipažinti su keliais terminais, kurie kartosis nuolat.

Repository (repo) – tai tiesiog projekto aplankas, kuriame saugomi visi failai bei jų istorija. Kiekvienas projektas GitHub’e turi savo repozitoriją.

Commit – tai vienas „išsaugojimo taškas”. Kiekvieną kartą, kai padarai pakeitimus ir juos užfiksuoji, sukuri commit’ą su trumpu aprašymu, ką pakeitei.

Branch (šaka) – įsivaizduok, kad projektas turi pagrindinę liniją (dažniausiai vadinamą main arba master), bet norint išbandyti naują funkciją, nesinori rizikuoti sugadinti veikiančios versijos. Tada sukuri atskirą šaką, dirbi joje, ir tik kai viskas veikia, sujungi ją su pagrindine.

Pull request (PR) – tai prašymas sujungti tavo šakos pakeitimus su pagrindine šaka. Kitas žmogus (ar visa komanda) gali peržiūrėti, ką pakeitei, palikti komentarus ir tik tada patvirtinti sujungimą.

Fork – tai savo asmeninė kopija kito žmogaus repozitorijos. Naudinga, kai nori prisidėti prie svetimo projekto, bet neturi teisių tiesiogiai jį keisti.

Clone – parsisiuntimas repozitorijos kopijos į savo kompiuterį, kad galėtum dirbti lokaliai.

Iš pradžių šie žodžiai gali skambėti painiai, bet po kelių savaičių praktikos jie tampa tokie pat natūralūs kaip „išsaugoti” ar „atidaryti failą”.

Kaip pradėti – žingsnis po žingsnio

Pirmas žingsnis paprastas – reikia sukurti nemokamą paskyrą github.com svetainėje. Tam užtenka el. pašto adreso ir kelių minučių laiko.

Toliau reikėtų kompiuteryje įsidiegti Git programą (jei dar neturi). Windows, Mac ir Linux vartotojams tai atrodo šiek tiek skirtingai, bet instrukcijos oficialioje git-scm.com svetainėje viską paaiškina aiškiai.

Kai Git jau įdiegtas, verta atsidaryti terminalą (arba komandinę eilutę) ir susipažinti su keliomis bazinėmis komandomis:

git init – sukuria naują Git repozitoriją tavo aplanke.
git add . – paruošia failus, kad būtų įtraukti į kitą commit’ą.
git commit -m "aprašymas" – sukuria „išsaugojimo tašką” su trumpu paaiškinimu.
git push – nusiunčia pakeitimus į GitHub.
git pull – parsisiunčia naujausius pakeitimus iš GitHub į tavo kompiuterį.

Iš pradžių gali atrodyti, kad reikia įsiminti begalę komandų, bet realybėje 90 proc. laiko naudosi vos kelias iš jų. Likusias išmoksi tada, kai jų iš tikrųjų prireiks – ne anksčiau.

GitHub Desktop – alternatyva tiems, kas bijo terminalo

Jei komandinė eilutė kelia stresą (o pradžioje tai visiškai normalu), GitHub siūlo ir grafinę programą – GitHub Desktop. Ji leidžia atlikti visus tuos pačius veiksmus – commit’inti, push’inti, kurti šakas – tiesiog spaudant mygtukus, be jokių komandų rašymo.

Tai puikus startinis taškas tiems, kurie dar tik mokosi ir nenori vienu metu kovoti su dviem naujomis sistemomis – ir Git logika, ir terminalo sintaksę. Vėliau, kai jausiesi patogiau, visada gali pereiti prie komandinės eilutės, nes ji suteikia daugiau lankstumo ir greičio.

Dažniausios pradedančiųjų klaidos

Viena populiariausių klaidų – per daug failų viename commit’e su neaiškiu aprašymu tipo „fix” arba „update”. Po mėnesio pažiūrėjęs į istoriją nesuprasi, ką iš tikrųjų tas commit’as pakeitė. Geriau rašyti trumpus, bet konkrečius aprašymus: „pridėtas prisijungimo formos validavimas” skamba daug informatyviau nei tiesiog „update”.

Kita dažna problema – slaptų duomenų (API raktų, slaptažodžių) atsitiktinis įkėlimas į viešą repozitoriją. Tai nutinka dažniau, nei norėtųsi pripažinti. Verta iš karto susikurti .gitignore failą, kuriame nurodai, kokių failų ar aplankų Git apskritai neturėtų sekti – pavyzdžiui, konfigūracijos failų su jautriais duomenimis.

Taip pat pradedantieji dažnai bijo eksperimentuoti su šakomis, bijodami „sugadinti” projektą. Tiesa yra ta, kad Git yra sukurtas būtent tam, kad galėtum eksperimentuoti be baimės – jei kažkas nepavyksta, visada gali grįžti atgal arba tiesiog ištrinti šaką, nepaliesdamas pagrindinio kodo.

Kaip prisidėti prie atvirojo kodo projektų

Kai jau jautiesi tvirčiau, verta pabandyti prisidėti prie kokio nors atvirojo kodo projekto. Tai puikus būdas mokytis iš realaus kodo ir pamatyti, kaip dirba profesionalai.

Procesas dažniausiai atrodo taip: susirandi projektą, kuris tave domina (GitHub turi net specialų žymėjimą „good first issue” – tai užduotys, specialiai pažymėtos kaip tinkamos naujokams), sukuri fork’ą savo paskyroje, klonuoji jį lokaliai, padarai pakeitimus atskiroje šakoje ir tuomet sukuri pull request’ą originaliame projekte.

Nebijok, jei tavo pirmasis pull request’as bus atmestas arba paprašys pataisymų – tai visiškai normali proceso dalis. Net patyrę programuotojai sulaukia komentarų ir pastabų prie savo kodo. Svarbiausia – nebijoti bandyti.

Užuot baigus – keli praktiniai patarimai kelionės pradžiai

Užuot rašius sausą apibendrinimą, geriau paliksiu keletą konkrečių dalykų, kurie tikrai pravers, kai pradėsi savo kelią su GitHub.

Pirma, nesistenk iš karto įsiminti visų komandų ar terminų. Užtenka žinoti pagrindinį ciklą – add, commit, push – ir viskas kitas ateis natūraliai per praktiką. Antra, sukurk sau vieną „žaidimų aikštelės” repozitoriją, kurioje gali eksperimentuoti be jokios baimės ką nors sugadinti – tai geriausias būdas išmokti nebijant pasekmių.

Trečia, jei dirbi su komanda ar prisidedi prie kito žmogaus projekto, visada rašyk aiškius commit aprašymus – tai maža investicija, kuri sutaupys daug laiko ateityje, kai reikės suprasti, kas ir kada buvo pakeista. Ketvirta, neignoruok .gitignore failo – jis apsaugos tave nuo gėdingų situacijų, kai internete atsiduria slaptažodžiai ar API raktai.

Ir galiausiai – neskubėk. GitHub ekosistema iš pirmo žvilgsnio gali atrodyti didžiulė ir bauginanti, bet realybėje kasdien naudosi tik nedidelę jos dalį. Kaip ir bet kuris įrankis, jis tampa suprantamas per praktiką, o ne per teorijos skaitymą. Tad atsidaryk paskyrą, sukurk pirmą repozitoriją ir tiesiog pradėk – likusi dalis susidėlios pati.