Reklama
Ako weboví vývojári veľa času máme tendenciu pracovať na stránkach miestneho rozvoja a potom, keď skončíme, všetko jednoducho odovzdáme. Je to v poriadku, keď ste to len vy a zmeny sú malé, ale keď máte čo do činenia s viac ako jednou človek pracujúci na niečom alebo na veľkom projekte s množstvom zložitých komponentov, to jednoducho nie je uskutočniteľné. Vtedy sa obraciame na niečo, čo sa nazýva kontrola verzií.
Dnes budem hovoriť o otvorenom softvéri na kontrolu verzií s názvom Git. To umožňuje viacerým osobám bezpečne pracovať na tom istom projekte bez vzájomného zasahovania, ale je to omnoho viac.
Prečo používať softvér na správu verzií?
V prvom rade by ho malo meno pomenovať. Softvér na správu verzií vám umožňuje mať „verzie“ projektu, ktoré ukazujú zmeny, ktoré sa v kóde vykonali v priebehu času, a v prípade potreby vám umožňuje spätne sledovať a tieto zmeny vrátiť. Len táto schopnosť - schopnosť porovnávať dve verzie alebo zvrátiť zmeny, robí túto prácu neoceniteľnou pri práci na väčších projektoch.
Pravdepodobne ste to niekedy urobili sami, pričom si kópie projektu uložíte na rôznych miestach, takže máte zálohu. V systéme riadenia verzií by sa uložili iba zmeny - opravný súbor, ktorý by sa mohol použiť na jednu verziu, aby bol rovnaký ako ďalšia verzia. U jedného vývojára to stačí.
Čo ak však na projekte pracuje viac ako jeden vývojár? Vtedy prichádza myšlienka centralizovaného servera na správu verzií. Toto sú štandardy už dlhú dobu, pričom všetky verzie sú uložené na centrálnom serveri a zmeny jednotlivých vývojárov a ukladanie zmien späť na tento server. Ak ste sa niekedy zaoberali históriou úprav stránky Wikipedia, budete mať dobrý nápad, ako to funguje v scenári skutočného sveta:

Výhodou systému, ako je tento, je to, že viacerí vývojári môžu vykonávať zmeny a každú zmenu potom môže priradiť konkrétny vývojár. Nevýhodou je, že všetko, čo je uložené vo vzdialenej databáze, znamená, že pri výpadku servera sa nedajú vykonať žiadne zmeny; a v prípade straty centrálnej databázy má každý klient iba aktuálnu verziu toho, na čom pracovali.
To nás zavedie na Git a ďalšie takzvané distribuované systémy riadenia verzií. V týchto systémoch klienti nekontrolujú iba aktuálnu verziu súborov a nepracujú na nich - odrážajú celú históriu verzií. Každý vývojár má vždy úplnú kópiu všetkého. Centrálny server sa stále používa, ale v prípade najhoršieho sa môže všetko obnoviť od všetkých klientov, ktorí majú najnovšie verzie.
Git konkrétne funguje tak, že sníma „snímky“ súborov; Ak zostanú súbory v konkrétnej verzii nezmenené, jednoducho sa pripojí k predchádzajúcim súborom - všetko bude rýchle a štíhle.
Mohlo by vás tiež zaujímať, keď sa dozviete, že Git sa používa na správu a vývoj systému jadro linuxového jadra - základný stavebný blok, na ktorom sú postavené všetky linuxové rozvody.

Čo je Github?
Aj keď môžete svoj vlastný server Git prevádzkovať lokálne, Github je vzdialený server, komunita vývojárov a grafické webové rozhranie na správu vášho projektu Git. Môžete používať až 5 verejných úložísk - to znamená, keď si niekto môže zobraziť alebo rozbaliť váš kód - s lacnými plánmi pre súkromné projekty. Dôrazne odporúčame, aby ste sa zaregistrovali na bezplatný účet, aby ste mohli začať hrať so svojimi vlastnými projektmi alebo predávať niekoho iného.

Vidlica a vetvenie
Toto sú základné koncepcie zážitku z Gitu, preto si poďme na chvíľu vysvetliť rozdiel.
Pravdepodobne ste už počuli prácu „vidlice“ pri riešení linuxových distribúcií. Ak ste oboznámení s aplikáciou Media Center Plex, viete, že to bola pôvodne vidlička podobného otvoreného zdroja Xbox Media Center Aeon Nox 3.5: Krásna a prispôsobiteľná téma pre XBMCNastavte si svoje mediálne centrum presne podľa svojich predstáv. Aeon Nox 3.5 je najnovšia verzia toho, čo je pravdepodobne najlepšou témou pre XBMC, a je to zriedkavá kombinácia: prekrásna ... Čítaj viac . To jednoducho znamená, že v určitom okamihu v minulosti niektorí vývojári prevzali kód XBMC a rozhodli sa s ním ísť svojou cestou; z toho sa stal Plex.
Toto je samozrejme úplne povolené, keď je projekt otvoreným zdrojom - môžete si vziať kód, robiť s ním všetko, čo chcete. Ak máte dojem, že sú vaše zmeny dosť dobré na to, aby sa mohli vrátiť späť do „hlavného“ projektu, môžete môžu autorovi poslať „žiadosť o stiahnutie“ a požiadať ich, aby svoje zmeny stiahli späť do pôvodného stavu Projekt. To vám umožní, aby v každom okamihu pracovali na projekte stovky tisíc vývojárov, z ktorých nikto nesmie pre prístup k kódu je potrebné ich schváliť - iba skopírujú kód, vykonajú zmeny a požiadajú o vrátenie späť do systému Windows master. Ak sa rozhodnú vaše zmeny prijať alebo nie, je samozrejme na vlastníkovi pôvodného projektu.
Vetvenie je niečo, čo interne vykonávajú na projekte autorizovaní vývojári. Umožňuje vám ľahko oddeliť konkrétne problémy alebo funkcie a pracovať na nich bez porušenia hlavných súborov. Keď ste spokojní s tým, že vaša pobočka riešila tento problém, zlúčite ho späť do predlohy. Kedykoľvek môžete mať toľko pobočiek, koľko chcete; navzájom sa nezasahujú. Zmeny medzi vetvami môžete zlúčiť aj bez toho, aby ste sa dotkli predlohy.
Tu je skvelý diagram príkladu pracovného postupu Vincent Driessen:

Nabudúce sa pozrieme na to, ako nastaviť funkčný príklad Git a ako vykonať zmeny kódu v rámci pobočiek. Správa verzií je obrovská téma. Uvádzam tu iba najkratší prehľad, ale ako vývojár, ktorý je zvyknutý robiť len zmeny a vrátiť ich späť, ak nefungujú, mi celá myšlienka pritiahla myseľ - dúfam, že to urobí aj vy.
Ste skúsený vývojár so skúsenosťami v Gite? Ste len na začiatku a myslíte si, že by ste sa mali ísť? Zvuk v komentároch!
James má bakalárske štúdium v oblasti umelej inteligencie a je držiteľom certifikátu CompTIA A + a Network +. Je popredným vývojárom MakeUseOf a trávi svoj voľný čas hraním VR paintballu a spoločenských hier. Staval počítače od malička.