Oglas
Kot spletni razvijalci veliko časa ponavadi delamo na lokalnih razvojnih mestih, nato pa samo naložimo vse, ko smo končali. To je v redu, če ste samo vi in spremembe majhne, ko pa imate opravka z več oseba, ki dela na nečem ali na velikem projektu z veliko zapletenimi komponentami, to preprosto ni izvedljivo. Takrat se obrnemo na nekaj, kar imenujemo nadzor nad različicami.
Danes bom govoril o odprtokodni programski opremi za nadzor različic, imenovani Git. To omogoča več osebam, da varno delajo na istem projektu, ne da bi se med seboj vmešavale, vendar je tudi toliko več kot to.
Zakaj uporabljati programsko opremo za nadzor različic?
V prvi vrsti naj bi ga ime izročilo. Programska oprema za nadzor različic vam omogoča, da imate "različice" projekta, ki prikazujejo spremembe, ki so bile s kodo narejene sčasoma, in vam omogoča, da po potrebi sledite nazaj in jih razveljavite. Ta sposobnost samo - primerjave dveh različic ali povratnih sprememb je precej koristna pri delu na večjih projektih.
Verjetno ste to kdaj tudi storili sami in prihranili kopije projekta na različnih točkah, tako da imate varnostno kopijo. V sistemu za nadzor različic bi bile shranjene samo spremembe - datoteka popravkov, ki bi jo bilo mogoče uporabiti za eno različico, da bi bila enaka naslednji različici. Pri enem razvijalcu to zadostuje.
Kaj pa, če imate na projektu več razvijalcev? Takrat pride ideja o centraliziranem strežniku za nadzor različic. To so že dolgo veljavni standard, po katerem so vse različice shranjene na centralnem strežniku, posamezni razvijalci pa naložijo in naložijo spremembe nazaj na ta strežnik. Če ste kdaj pogledali zgodovino urejanja strani Wikipedije, boste imeli dobro predstavo, kako to deluje v resničnem scenariju:
Prednosti sistema, kot je ta, je, da lahko več razvijalcev spremeni, vsako spremembo pa lahko pripišemo določenemu razvijalcu. Na drugi strani pa dejstvo, da je vse shranjeno v oddaljeni bazi podatkov, pomeni, da ni mogoče spremeniti sprememb, ko se strežnik zmanjša; in če je osrednja baza podatkov izgubljena, ima vsaka stranka samo trenutno različico, kar je delala.
To nas popelje na Git in druge t.i. distribucijski sistemi za nadzor različic. V teh sistemih stranke ne preverjajo samo trenutne različice datotek in delajo iz njih - zrcalijo celotno zgodovino različic. Vsak razvijalec ima vedno popolno kopijo vsega. Še vedno se uporablja centralni strežnik, a če se zgodi najhujše, je vse mogoče obnoviti pri vseh odjemalcih, ki imajo najnovejše različice.
Git posebej deluje tako, da vzame "posnetke" datotek; če datoteke v določeni različici ostanejo nespremenjene, se preprosto povežejo s prejšnjimi datotekami - to ohranja vse hitro in vitko.
Mogoče bi vas zanimalo tudi, če se Git uporablja za upravljanje in razvoj jedro Linux Linux - osnovni gradnik, na katerem so vgrajene vse linux distribucije.
Kaj je Github?
Čeprav lahko svoj Git strežnik zaženete lokalno, Github je tako oddaljeni strežnik, skupnost razvijalcev in grafični spletni vmesnik za upravljanje vašega Git projekta. Prosto je mogoče uporabiti za do 5 javnih skladišč - torej kadar si kdo lahko ogleda ali razdeli vašo kodo - z nizkocenovnimi načrti za zasebne projekte. Toplo vam priporočam, da se prijavite za brezplačen račun, da se lahko začnete igrati s svojimi projekti ali forsirate nekoga.
Vilice in razvejevanje
To so osnovni pojmi za Git izkušnjo, zato si vzemimo trenutek, da razložimo razliko.
Verjetno ste že slišali delo "vilice", ko ste se ukvarjali z Linuxovimi distrosmi. Če poznate aplikacijo za medijski center Plex, boste vedeli, da je bila prvotno vilica podobnega odprtega vira Xbox Media Center Aeon Nox 3.5: Lepa in prilagodljiva tema za XBMCNastavite svoj medijski center točno tako, kot želite. Aeon Nox 3.5 je zadnja različica tistega, kar je morda najboljša tema za XBMC, in je redka kombinacija: lepa ... Preberi več . To preprosto pomeni, da so nekateri razvijalci v nekem preteklem obdobju vzeli kodo XBMC in se odločili, da bodo šli po svoji poti; ki je postal Plex.
To je seveda popolnoma dovoljeno, ko je projekt odprtokoden - lahko vzamete kodo in z njo storite karkoli želite. Če menite, da so spremembe z Gitom dovolj dobre, da jih lahko vrnete v "glavni" projekt, vi lahko avtorju "povleče zahtevo" in ga prosi, naj vaše spremembe potegnejo nazaj v izvirnik projekt. To vam omogoča, da imate na stotine tisoč razvijalcev, ki delajo na projektu v katerem koli trenutku, nobeden od njih pa ne nujno je treba odobriti dostop do kode - oni preprosto kopirajo kodo, spremenijo in zahtevajo, da se vrnejo v mojster. Seveda je odvisno od lastnika izvirnega projekta, če bo sprejel spremembe ali ne.
Podružnica je nekaj, kar je znotraj projekta opravljeno s strani pooblaščenih razvijalcev. Omogoča vam enostavno ločevanje določenih težav ali funkcij in delo na njih, ne da bi prelomili glavne datoteke. Ko ste zadovoljni, da se je vaša podružnica ukvarjala s težavo, jo združite nazaj v glavnega. V katerem koli trenutku je lahko toliko vej, kot želite; se med seboj ne motijo Spremembe lahko združite tudi med vejami, ne da bi se dotaknili glavnega.
Tu je odličen diagram primera poteka dela Vincent Driessen:
Naslednjič bomo pogledali, kako nastaviti delovni primer Gita in spremeniti kodo v vejah. Nadzor različic je velika tema. Tu sem navedel samo najbolj pregleden pregled, toda kot razvijalec, ki je navajen samo spreminjati in jih razveljaviti, če ne delujejo, mi je celoten koncept razblinil misel - upam, da je to tudi vaše.
Ste začinjeni razvijalec z izkušnjami v Gitu? Ste šele začeli in mislite, da bi radi šli? Zvok v komentarjih!
James ima doktorat iz področja umetne inteligence in ima certifikat CompTIA A + in Network +. Je vodilni razvijalec MakeUseOf in svoj prosti čas preživlja z igranjem VR paintball in družabnih iger. Z računalniki gradi že od malih nog.