Programovanie

Čo je to GitHub? Viac ako kontrola verzie Git v cloude

GitHub je jadrom hostiteľskej služby úložiska Git, t. J. Cloudovej správy zdrojových kódov alebo systému riadenia verzií, ale to je len začiatok. GitHub navyše implementuje funkcie pre kontrolu kódu (požiadavky na stiahnutie, rozdiely a žiadosti o kontrolu), správu projektu (vrátane sledovania a priradenia problémov), integrácie s ďalšími nástrojmi pre vývojárov, správu tímu, dokumentáciu a „sociálne kódovanie“.

GitHub, niečo ako sociálna sieť pre programátorov, je otvorené prostredie, kde môžu programátori slobodne zdieľať a spolupracovať (dokonca ad hoc) na otvorenom zdrojovom kóde. GitHub uľahčuje hľadanie užitočného kódu, kopírovanie úložísk pre vlastnú potrebu a odosielanie zmien do projektov iných. Vďaka tomu sa GitHub stal domovom prakticky každého open source projektu akejkoľvek dôležitosti.

Kedykoľvek chcem preskúmať projekt typu open source, začnem vyhľadaním názvu projektu. Akonáhle nájdem web projektu, vyhľadám jeho odkaz na úložisko kódov a deväťkrát z 10 skončím na GitHub.

Ovládanie verzie Git

Predtým, ako pochopíme, čo GitHub robí a ako funguje GitHub, musíme pochopiť Git. Git je systém riadenia distribuovanej verzie, ktorý pôvodne napísal Linus Torvalds v roku 2005 pre komunitu jadrových systémov Linux a za jej pomoci. Nie som tu, aby som vás predával na Gite, takže vás ušetrím informácií o tom, aké rýchle a malé, flexibilné a populárne je, ale mali by ste vedieť, že keď naklonujete repozitár Git (skrátene repo) získate celú históriu verzií na svojom počítači, nielen snímku z jednej pobočky súčasne.

Git začínal ako nástroj príkazového riadku a hodil sa k svojmu pôvodu v komunite jadra Linuxu. Ak chcete, môžete stále použiť príkazový riadok Git, ale nemusíte. Namiesto alebo okrem príkazového riadku môžete použiť bezplatného klienta GitHub v systéme Windows alebo Mac alebo ľubovoľné množstvo ďalších grafických používateľských rozhraní pre Git alebo editor kódov, ktorý sa integruje do Gitu. Všetky tieto možnosti sú spočiatku ľahšie použiteľné ako príkazový riadok. Príkazový riadok Git je predinštalovaný na väčšine systémov Mac a Linux a podporuje ho všetko operácie; grafické používateľské rozhrania zvyčajne podporujú často používanú podmnožinu operácií Git.

Git sa líši od starších systémov na správu verzií, ako je Subversion, tým, že je distribuovaný a nie centralizovaný. Je to tiež celkom rýchle, najmä preto, že väčšina operácií sa deje vo vašom miestnom úložisku. Používanie Gitu však zvyšuje úroveň zložitosti: spáchanie kód do miestneho úložiska a tlačenie vaše záväzky do vzdialeného úložiska sú samostatné kroky. Keď tímy na to zabudnú (alebo nás o tom neučili), môže to viesť k situáciám, keď rôzni vývojári pracujú s kódovými bázami, ktoré sa rozchádzajú.

Vzdialené úložisko Git môže byť na serveri alebo na počítači iného vývojára. To umožňuje tímom mnoho možných pracovných postupov. Jeden spoločný pracovný tok spočíva v použití serverového úložiska ako „požehnaného“ úložiska, do ktorého sa zaviaže iba skontrolovaný a dobre otestovaný kód, často prostredníctvom ťahať žiadosť vydané z archívu vývojárov.

Funkčnosť GitHub

Už som poznamenal, že GitHub je cloudový server Git na hosťovanie kódu a sociálne kódovanie a že implementuje funkcie pre kontrolu kódu (požiadavky na stiahnutie, rozdiely a žiadosti o kontrolu), riadenie projektu (vrátane sledovania a priradenia problémov), integrácie s inými nástrojmi pre vývojárov, správu tímu a dokumentáciu.

Posledná inovácia v oblasti sociálneho kódovania od spoločnosti GitHub je zaviazať spoluautorov, čo dosiahnete pridaním jedného alebo viacerých upútaviek spoluautora na koniec správy o potvrdení. Tento mechanizmus nemá vplyv na repo jadro per se a nemení to, ako repo vyzerá na obyčajnom Gite, ale na GitHube chróm zobrazí viacerých komisárov v zozname komisií a každému spoluautorovi udelí kredit v jeho grafe príspevkov.

Ak chcete, môžete rozšíriť GitHub pomocou GitHub GraphQL API. Toto je významné zlepšenie oproti predchádzajúcemu API GitHubu, ktoré bolo založené na REST volaniach.

GitHub Enterprise

GitHub.com je cloudová hostiteľská služba, ktorá dokáže spracovať celý rad typov účtov: bezplatné (iba verejné úložiská) a platené (7 dolárov mesačne) vývojárske účty, tímy (9 dolárov na používateľa mesačne) a firmy (21 dolárov na používateľa mesačne) ). Ak chcete prevádzkovať GitHub Enterprise lokálne alebo vo vlastnej cloudovej inštancii na AWS, Microsoft Azure, Google Cloud Platform alebo IBM Cloud, môžete to urobiť za rovnakú cenu 21 dolárov na používateľa za mesiac ako hostovaný firemný účet. GitHub Enterprise pridáva niekoľko užitočných funkcií, ako napríklad zasielanie správ v aplikáciách používateľom a zabezpečenie prístupu integrované do adresárov LDAP, ale vzdáva sa 99,95 percentnej SLA prevádzkyschopnosti GitHub.com pre hostované obchodné účty.

GitHub vs. Bitbucket

GitHub nie je jediným hostiteľom vylepšenej služby Git a GitHub Enterprise nie je jediným lokálnym produktom pre spoločnosti. Atlassian Bitbucket súťaží s oboma z nich, s mierne nižšími cenami a s úrovňou bezplatného päťčlenného tímu, ktorá zahŕňa neobmedzené súkromné ​​repo obchody a použitie Bitbucket Pipelines na nepretržitú integráciu. GitHub je populárnejšia stránka pre projekty open source a má oveľa väčšiu skupinu vývojárov open source. Cena Bitbucketu je priaznivejšia pre malé začínajúce podniky.

GitHub vs. GitLab

GitLab súťaží s GitHub aj Bitbucket, hostenými aj lokálnymi. Na povrchu sa zdá, že GitLab má viac funkcií životného cyklu ako ostatné, ale rozdiel od Atlassian väčšinou zmizne, ak pri hodnotení Bitbucketu zahrniete Jiru. GitLab ponúka cloudové funkcie Gold-plan pre open source projekty zadarmo, ale táto ďalšia funkcia v skutočnosti nekompenzuje väčšiu komunitu vývojárov open-source na GitHub.

GitHub Desktop

GitHub Desktop, zobrazený nižšie, uľahčuje správu vašich úložísk GitHub.com a GitHub Enterprise. Aj keď sa to neimplementuje všetko funkcie príkazového riadku Git a webového grafického používateľského rozhrania GitHub, implementuje všetky operácie, ktoré budete denne vykonávať z pracovnej plochy, a zároveň prispieva do projektov. Spravidla budete klonovať úložiská z GitHubu na GitHub Desktop, podľa potreby ich synchronizovať, vytvárať vetvy pre svoju prácu, odovzdať prácu a príležitostne vrátiť jeden alebo viac záväzkov.

Ak chcete pracovať s úložiskami, pre ktoré nemáte oprávnenie na odovzdanie a spoluprácu, obvykle začnite rozvetvením úložiska na GitHub a klonovaním vidlice na plochu. Potom na GitHub Desktop pridáte všetky potrebné vetvy, vykonáte akékoľvek zmeny, ktoré si prajete, otestujete svoju prácu, zatlačíte komitáty späť do vzdialeného vidlicového úložiska a nakoniec vygenerujete žiadosť o stiahnutie do nadradeného projektu.

Tlačidlo Pull Request vidíte v pravom hornom rohu rozhrania GitHub Desktop. V projekte Neo4j môžete tiež vidieť veľa záväzkov, ktoré boli zlúčením pobočiek alebo požiadavkami na stiahnutie. To je typické pre projekty s otvoreným zdrojovým kódom, s niekoľkými autormi a mnohými prispievateľmi.

Editor atómov

Na úpravu kódu môžete použiť ľubovoľný programovací editor, ktorý chcete, vrátane bezplatného hackerského editora Atom od spoločnosti GitHub, ktorý je možné hacknúť (zobrazený nižšie), ktorý sa dobre integruje do služieb GitHub a GitHub Desktop. Atom môžete používať v systémoch MacOS, Windows alebo Linux. Atom môžete otvoriť z GitHub Desktop kliknutím pravým tlačidlom myši na úložisko, ktoré chcete prehliadať alebo upraviť.

Atom sa dodáva s približne 90 balíčkami, štyrmi témami používateľského rozhrania a ôsmimi témami syntaxe. Do svojej inštalácie Atom môžete pridať ktorýkoľvek zo 7 000 balíkov a 2 000 tém. Balíky môžu podporovať konkrétne programovacie jazyky, napríklad TypeScript, alebo pridávať funkcie, napríklad Hydrogen, interaktívne prostredie pre kódovanie, ktoré podporuje jadrá Python, R, JavaScript a ďalšie jadrá Jupyter.

Atom je postavený na integrácii HTML, JavaScript, CSS a Node.js. Funguje na platforme Electron, rámci pre vytváranie aplikácií pre rôzne platformy pomocou webových technológií. GitHub Desktop funguje aj na platforme Electron.

Projekty GitHub

Softvérové ​​projekty s otvoreným zdrojovým kódom často potrebujú spôsoby, ako presadiť kontrolu kvality, a pritom prijímať príspevky od vonkajšieho tímu zadávateľov. Potreba prispievateľov je obrovská, ale privedenie nových prispievateľov do projektu pri zachovaní integrity kódovej základne je ťažký a potenciálne nebezpečný podnik. Zároveň je obrovská potreba spätnej väzby od používateľov projektu.

GitHub má množstvo mechanizmov, ktoré môžu pomôcť namazať kolesá open source projektov. Používatelia môžu napríklad pridávať problémy do projektu na GitHub na hlásenie chýb alebo vyžiadanie funkcií. Niektoré iné systémy ich nazývajú letenky. Projektoví manažéri pracujúci s problémami môžu generovať zoznamy úloh, prideľovať problémy konkrétnym prispievateľom, spomínať ďalších prispievateľov, ktorí majú záujem, aby boli informovaní o zmenách, pridávať štítky a míľniky.

Pri príspevku do projektu v zásade vychádzate z témy hlava vetva obsahujúca potvrdené zmeny, ktoré chcete pridať do projektu základňa vetva a inicializovať a ťahať žiadosť z hlavovej vetvy, ako je znázornené nižšie. Potom zatlačíte svoje záväzky a pridáte ich do vetvy projektu. Ostatní prispievatelia môžu skontrolovať vaše navrhované zmeny, pridať komentáre ku kontrole, prispieť do diskusie o požiadavke na stiahnutie a pridať svoje vlastné záväzky k žiadosti o výber.

Keď sú všetci zúčastnení spokojní s navrhovanými zmenami, účastník môže zlúčiť žiadosť o načítanie. Zlúčenie môže zachovať všetky potvrdenia, zmačknúť všetky zmeny do jedného potvrdenia alebo rebázovať revízie z hlavnej vetvy na základnú vetvu. Ak zlúčenie generuje konflikty, môžete ich vyriešiť na GitHub alebo pomocou príkazového riadku.

Recenzie kódu na GitHub umožňujú distribuovanému tímu spolupracovať asynchrónne. Medzi užitočné nástroje GitHub pre recenzentov patria rozdiely (dolná polovica snímky obrazovky nižšie), história (horná polovica) a zobrazenie viny (spôsob zobrazenia vývoja súboru commit by commit). Diskusie o kóde na GitHub idú do komentárov, ktoré sú prezentované v súlade s vašimi zmenami kódu. Ak vstavané nástroje pre váš projekt nepostačujú, môžete na trhu GitHub pridať nástroje na kontrolu kódu a kontinuálnu integráciu. Doplnky Marketplace sú pre projekty open source často bezplatné.

Zoznamy GitHub

Zoznamy sú špeciálne úložiská GitHub na zdieľanie vašej práce (verejné) alebo na ukladanie práce na neskoršie opätovné použitie (tajné). Môžu obsahovať jednotlivé súbory, časti súborov alebo úplné aplikácie. Môžete si stiahnuť zoznamy, klonovať ich, rozdeliť ich vidlicou a vložiť ich.

Verejné zoznamy je možné nájsť a nájsť vo vyhľadávaní. Môžete použiť kľúčové slová na zúženie toho, čo nájdete, vrátane predpôn na obmedzenie výsledkov na zoznamy konkrétnych používateľov, zoznamy najmenej N hviezdy, zoznamy s konkrétnymi názvami súborov atď.

Tajné zoznamy nie je možné prehľadať, zobraziť ich však môže ktokoľvek s adresou URL. Ak naozaj chcete, aby bol váš kód chránený, použite súkromné ​​úložisko.

Ako sme videli, GitHub poskytuje úložiská Git ako službu spolu s funkciami na kontrolu kódu, správu projektu, integráciu s ďalšími nástrojmi pre vývojárov, správu tímov, sociálne kódovanie a dokumentáciu. Aj keď GitHub nie je jediným produktom vo svojej kategórii, je dominantným úložiskom pre vývoj softvéru s otvoreným zdrojovým kódom.

$config[zx-auto] not found$config[zx-overlay] not found