Programování

Co je GitHub? Více než ovládání verzí Git v cloudu

GitHub je srdcem hostingová služba úložiště Git, tj. Cloudová správa zdrojového kódu nebo systém pro správu verzí, ale to je jen začátek. GitHub navíc implementuje funkce pro kontrolu kódu (požadavky na vyžádání, rozdíly a požadavky na kontrolu), správu projektů (včetně sledování a přiřazení problémů), integraci s dalšími nástroji pro vývojáře, správu týmu, dokumentaci a „sociální kódování“.

GitHub, něco jako sociální síť pro programátory, je otevřené prostředí, kde programátoři mohou volně sdílet a spolupracovat (i ad hoc) na otevřeném zdrojovém kódu. GitHub usnadňuje hledání užitečného kódu, kopírování úložišť pro vlastní potřebu a odesílání změn do projektů ostatních. Výsledkem je, že GitHub se stal domovem prakticky každého open source projektu jakéhokoli významu.

Kdykoli chci prozkoumat open source projekt, začnu hledáním názvu projektu. Jakmile najdu web projektu, hledám jeho odkaz na úložiště kódu a devětkrát z 10 skončím na GitHubu.

Ovládání verzí Git

Než pochopíme, co GitHub dělá a jak GitHub funguje, musíme Gitu porozumět. Git je distribuovaný systém pro správu verzí, původně napsaný Linusem Torvaldsem v roce 2005 pro komunitu jádra Linuxu as pomocí komunity Linuxu. Nejsem tady, abych vás prodal na Gitu, takže vás ušetřím informací o tom, jak rychlé a malé a flexibilní a populární je, ale měli byste vědět, že když naklonujete úložiště Git (zkráceně „repo“) získáte celou historii verzí ve svém počítači, nejen snímek z jedné větve najednou.

Git začínal jako nástroj příkazového řádku, který odpovídá jeho původu v komunitě jádra Linuxu. Pokud chcete, můžete stále použít příkazový řádek Git, ale nemusíte. Místo nebo navíc k příkazovému řádku můžete použít bezplatného klienta GitHub v systému Windows nebo Mac nebo libovolné množství dalších grafických uživatelských rozhraní pro Git nebo editor kódu, který se integruje do Gitu. Všechny tyto možnosti jsou zpočátku jednodušší než příkazový řádek. Příkazový řádek Git je předinstalován na většině systémů Mac a Linux a podporuje jej Všechno operace; GUI obvykle podporují často používanou podmnožinu operací Git.

Git se liší od starších systémů pro správu verzí, jako je Subversion, tím, že je distribuován spíše než centralizován. Je to také docela rychlé, zejména proto, že většina operací probíhá ve vašem místním úložišti. Nicméně použití Gitu přidává úroveň složitosti: spáchání kód do místního úložiště a tlačí vaše závazky ke vzdálenému úložišti jsou samostatné kroky. Když týmy na to zapomenou (nebo se o tom neučily), může to vést k situacím, kdy různí vývojáři pracují s odlišnými základnami kódu.

Vzdálené úložiště Git může být na serveru nebo na počítači jiného vývojáře. To umožňuje týmům mnoho možných pracovních postupů. Jeden běžný pracovní postup zahrnuje použití úložiště serveru jako „požehnaného“ úložiště, do kterého je přidělen pouze zkontrolovaný a dobře otestovaný kód, často prostřednictvím vytáhnout požadavek vydáno z úložiště vývojáře.

Funkce GitHub

Už jsem poznamenal, že GitHub je cloudový server Git pro hostování kódu a sociální kódování a že implementuje funkce pro kontrolu kódu (žádosti o vyžádání, rozdíly a žádosti o kontrolu), správu projektů (včetně sledování a přiřazení problémů), integrace s dalšími vývojářskými nástroji, správa týmu a dokumentace.

Nejnovější inovací v oblasti sociálního kódování od GitHub je spáchat spoluautory, čehož dosáhnete přidáním jedné nebo více upoutávek spoluautorů na konec zprávy o potvrzení. Tento mechanismus nemá vliv na repo jádro per se a nemění to, jak repo vypadá na obyčejném Gitu, ale na GitHubu chrom zobrazí více komisařů v seznamu potvrzení a každému spoluautorovi přidělí kredit ve svém příspěvkovém grafu.

Pokud si přejete, můžete GitHub rozšířit pomocí GitHub GraphQL API. Jedná se o významné zlepšení oproti předchozímu API GitHubu, které bylo založeno na REST voláních.

GitHub Enterprise

GitHub.com je cloudová hostingová služba, která zvládne celou řadu typů účtů: bezplatné (pouze veřejné repo operace) a placené (7 $ za měsíc) vývojářské účty, týmy (9 $ za uživatele za měsíc) a firmy (21 $ za uživatele za měsíc) ). Pokud si přejete provozovat GitHub Enterprise místně nebo ve vlastní cloudové instanci na AWS, Microsoft Azure, Google Cloud Platform nebo IBM Cloud, můžete tak učinit za stejnou cenu 21 USD na uživatele za měsíc jako hostovaný obchodní účet. GitHub Enterprise přidává několik užitečných funkcí, jako je zasílání zpráv v aplikacích uživatelům a zajišťování přístupu integrované s adresáři LDAP, ale vzdává se SLA 99,95 procenta doby provozuschopnosti GitHub.com pro hostované obchodní účty.

GitHub vs. Bitbucket

GitHub není jedinou hostovanou vylepšenou službou Git a GitHub Enterprise není jediným místním produktem pro společnosti. Atlassian Bitbucket soutěží s oběma z nich, s mírně nižšími cenami a s úrovní bezplatného pětičlenného týmu, která zahrnuje neomezené soukromé repo operace a použití Bitbucket Pipelines pro nepřetržitou integraci. GitHub je populárnější web pro open source projekty a má mnohem větší skupinu vývojářů open source. Ceny bitbucketů jsou příznivější pro malé začínající podniky.

GitHub vs. GitLab

GitLab soutěží s GitHub i Bitbucket, hostované i místní. Na povrchu se zdá, že GitLab má více funkcí životního cyklu než ostatní, ale rozdíl od Atlassian většinou zmizí, pokud při hodnocení Bitbucketu zahrnete Jiru. GitLab nabízí cloudové funkce Gold-plan pro open source projekty zdarma, ale tato další funkce ve skutečnosti nekompenzuje větší komunitu vývojářů open-source na GitHubu.

GitHub Desktop

GitHub Desktop, zobrazený níže, usnadňuje správu vašich úložišť GitHub.com a GitHub Enterprise. I když se neimplementuje Všechno funkce příkazového řádku Git a webového grafického uživatelského rozhraní GitHub, implementuje všechny operace, které budete denně provádět z vašeho počítače, a zároveň přispíváte k projektům. Typicky budete klonovat repozitáře z GitHubu na GitHub Desktop, synchronizovat je podle potřeby, vytvářet větve pro svou práci, odevzdat svou práci a občas vrátit jeden nebo více závazků.

Chcete-li pracovat s repozitáři, u kterých vám chybí oprávnění ke spáchání a spolupráci, obvykle začnete rozvětvením repo na GitHubu a klonováním vidlice na plochu. Pak na GitHub Desktop přidáte všechny potřebné větve, provedete jakékoli změny, které si přejete, otestujete svou práci, vrátíte závazky zpět do vzdáleného vidlicového úložiště a nakonec vygenerujete požadavek na stažení do nadřazeného projektu.

Tlačítko Pull Request vidíte v pravém horním rohu rozhraní GitHub Desktop. V projektu Neo4j můžete také vidět mnoho revizí, které byly sloučením větví nebo požadavky na vyžádání. To je typické pro open source projekty s několika zadavateli a mnoha přispěvateli.

Editor atomů

K úpravě kódu můžete použít libovolný programovací editor, který chcete, včetně bezplatného open source hackovatelného editoru Atom od GitHubu (viz níže), který se dobře integruje do GitHubu a GitHub Desktopu. Atom můžete použít v systémech MacOS, Windows nebo Linux. Atom můžete otevřít z GitHub Desktop kliknutím pravým tlačítkem na úložiště, které chcete procházet nebo upravovat.

Atom je dodáván s přibližně 90 balíčky, čtyřmi motivy uživatelského rozhraní a osmi motivy syntaxe. K instalaci Atom můžete přidat kterýkoli ze 7 000 balíčků a 2 000 témat. Balíčky mohou podporovat konkrétní programovací jazyky, jako je TypeScript, nebo přidat funkce, například Hydrogen, interaktivní prostředí pro kódování, které podporuje Python, R, JavaScript a další jádra Jupyter.

Atom je postaven na integraci HTML, JavaScript, CSS a Node.js. Funguje na Electronu, rámci pro vytváření aplikací napříč platformami pomocí webových technologií. GitHub Desktop také běží na Electronu.

Projekty GitHub

Softwarové projekty s otevřeným zdrojovým kódem často potřebují způsoby, jak vynutit kontrolu kvality a zároveň přijímat příspěvky od vnějšího týmu komisařů. Potřeba přispěvatelů je obrovská, ale přivést do projektu nové přispěvatele při zachování integrity kódové základny je obtížný a potenciálně nebezpečný podnik. Současně je také obrovská potřeba zpětné vazby od uživatelů projektu.

GitHub má řadu mechanismů, které mohou pomoci promazat kola projektů open source. Uživatelé mohou například přidávat problémy do projektu na GitHubu k hlášení chyb nebo požadavku na funkce. Některé jiné systémy tomu říkají lístky. Projektoví manažeři pracující s problémy mohou generovat seznamy úkolů, přiřadit problémy konkrétním přispěvatelům, zmínit další přispěvatele, kteří mají zájem, aby byli informováni o změnách, přidávat štítky a přidávat milníky.

Chcete-li přispět do projektu, v zásadě vycházíte z tématu hlava větev, která obsahuje potvrzené změny, které chcete přidat do projektu základna větev a inicializovat a vytáhnout požadavek z větve hlavy, jak je znázorněno níže. Poté zatlačíte své závazky a přidáte je do větve projektu. Ostatní přispěvatelé mohou zkontrolovat vaše navrhované změny, přidat komentáře ke kontrole, přispět do diskuse o požadavku na stažení a přidat své vlastní závazky k požadavku na přijetí.

Jakmile budou všichni zúčastnění spokojeni s navrhovanými změnami, může spojovatel sloučit požadavek na stažení. Sloučení může zachovat všechny revize, zmáčknout všechny změny do jednoho revize nebo rebasovat revize z hlavní větve do základní větve. Pokud sloučení generuje konflikty, můžete je vyřešit na GitHubu nebo pomocí příkazového řádku.

Recenze kódu na GitHubu umožňují distribuovanému týmu spolupracovat asynchronně. Mezi užitečné nástroje GitHub pro recenzenty patří rozdíly (dolní polovina snímku obrazovky níže), historie (horní polovina) a zobrazení viny (způsob, jak zobrazit vývoj potvrzení souboru potvrzením). Diskuse o kódu na GitHubu jdou do komentářů, které jsou prezentovány v souladu se změnami kódu. Pokud integrované nástroje pro váš projekt nestačí, můžete přidat nástroje pro kontrolu kódu a kontinuální integraci z tržiště GitHub. Doplňky Marketplace jsou pro projekty open source často zdarma.

GitHub seznamy

Seznamy jsou speciální úložiště GitHub pro sdílení vaší práce (veřejné) nebo pro ukládání práce pro pozdější opětovné použití (tajné). Mohou obsahovat jednotlivé soubory, části souborů nebo úplné aplikace. Můžete si stáhnout seznamy, naklonovat je, rozvětvit a vložit.

Veřejné seznamy lze objevit a najít při vyhledávání. Můžete použít klíčová slova ke zúžení toho, co najdete, včetně předpon k omezení výsledků na seznamy konkrétních uživatelů, seznamy s alespoň N hvězdy, seznamy se specifickými názvy souborů atd.

Tajné seznamy nelze prohledávat, ale zobrazit je může kdokoli s adresou URL. Pokud opravdu chcete, aby byl váš kód chráněn, použijte soukromé úložiště.

Jak jsme viděli, GitHub poskytuje úložiště Git jako službu spolu s funkcemi pro kontrolu kódu, správu projektů, integraci s dalšími nástroji pro vývojáře, správu týmů, sociální kódování a dokumentaci. Zatímco GitHub není jediným produktem ve své kategorii, je dominantním úložištěm pro vývoj softwaru s otevřeným zdrojovým kódem.

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