Semestrální práce KIV/ZIM Nástroj pro sdílení znalostí/management informací Antonín Neumann, A14N0139P neumann@students.zcu.cz Téma: Github.com 18:58 28.10.2015 ------------------------------------------------------------------------------ # Github.com ## Pro jakou cílovou skupinu je nástroj vhodný? Github.com je v první řadě nadstavba nad verzovacím nástrojem Git, který sám o sobě je vhodný hlavně pro verzování software (tj. převážně textových souborů). Z toho je zřejmé i nástroj Github.com je určený předně pro vývoj a správu různých softwarových projektů. Ale je možné jej využít k různým, s vývojem software nesouvisejím potřebám, tedy i ke sdílení informací. ## Jaké má základní možnosti, funkcionality? Základní možnosti použití jsou: * verzovací nástroj Git * je možné používat i v nástrojích pro správu SVN (specíální URL) * issue tracker pro správu "úkolů" (obdoba systému Redmine) * wiki stránky * Github pages - jednoduché webové stránky (pouze HTML, CSS a javascript) * existuje webový generátor * nebo je možné psát ručně * stránky jsou umístěné v samostatné větvi * Gist - nástroj pro sdílení souborů, částí souborů, úseků kódu, aplikací, atp. * Markdown značkovací jazyk pro formátování textu, lze využít na wiki, readme, v komentářích, aj. * GitHub Desktop pro uživatele Mac OS a Windows nabízí Github desktopovou aplikaci pro pohodlnou správu projektů. * Existuje i aplikace pro Android (slouží hlavně pro přehled) Github je v základní verzi pro všechny zdarma, v této bezplatné verzi jsou ovšem nějaká omezení: 1. všechny projekty jsou veřejné (tj. viditelné a stažitelné pro kohokoli) 2. projekty musí být uvolněny jako open source pod nějakou svobodnou licencí (např. MIT, Apache, GPL, atp.) ## Má nějaké specifické či unikátní možnosti? ### Gist Nástroj Gist slouží pro zveřejňování částí kódu nebo souborů, skvěle využitélný například při školeních. Každý gist je vlastně jednoduchý Git repositář, se všemi jeho možnostmi (stažení, forkování, clonování, atp.), který ale narozdíl od standardních repozitářů může být veřejný i soukromý. Soukromé gisty nejsou vyhledatelné, ale stále je možné se na ně dostat přímým zadáním URL adresy. ### Stažení celé aplikace jako ZIP archív Každý repositář nebo gist je možné stáhnout jako ucelený ZIP archív, obsahující všechny soubory. V případě Git repositáře dochází ke stažení pouze aktuálně vybrané větve. ### Fork Každý repositář i gist je možné také tzv. forknout (je zde možné vidět souvislost s funkcí fork() známou z operačních systému GNU Linux nebo Unix). To znamená, že se zvolený repositář s právě vybranou větví nakopíruje do vašeho prostoru (je nutné mít vlastní účet a být příhlášený) a stane se z něj nezávislý nový repositář, který můžete spravovat stejně jako ostatní Vaše repositáře. ## Jaké typy informací/znalostí se v něm dají dobře zachytit, sdílet? Díky spojení nástrojů jako je Git reposítář, issue tracker, wiki stránky nebo gist je možné v tomto nástroji sdílet prakticky jakékoli informace. Osobně myslím, že pro sdílení dokumentů nebo audiovizuálních materiálů existují vhodnější služby jako například Google Drive, Dropbox nebo One Drive. Rovněž matematické nebo fyzikální texty obsahující velké množství vzorců nejsou tím pravým pro sdílení přes Github.com. [Poznámka] Nově Github začal nabízet rozhraní pro sdílení velkých binárních souborů nazvané Git Large File Storage (Git LFS), které rovněž uvolnil jako open source rozšíření pro systém Git. (https://github.com/blog/2069-git-large-file-storage-v1-0) ## Jak se s ním typicky pracuje (uvést 2 příklady)? 1) Nástroj pro správu verzí Navštívíte nějaký Git repositář (nebo vytvoříte nový) se kterým chcete pracovat. V pravém sloupci se nalézá tzv. "clone URL", kterou si zkopírujete. Poté v nějakém adresáři v příkazové řádce zadáte následují příkaz (je možné využít i nějakého klienta s grafických rozhraním): git clone https://github.com/JMENO/NAZEV_REPO Tímto se vám celý repositář stáhne a můžete s ním začít pracovat. Po dokončení nějaké jednotky práce zase svůj kód můžete nahrát zpět do repositáře (pokud k tomu máte opravnění) a ostatní si jej budou moci stáhnout včetně všech Vašich úprav. 2) Issue tracker Ve vašem repositáři (nebo v nějakém do kterého máte právo zapisovat) v pravém sloupci zvolte položku "Issues", která vás přesune do issue trackeru. Zde již můžete vidět vytvořené záznamy a můžete si je různě filtrovat. Je možné pridat nový pomocí tlačítka "New issue". Každý záznam má nějaký vlastní obsah, může obsahovat štítky (tzv. Labels) jako "BUG" nebo "ENHANCEMENT", může být přiřazen v tzv. Milestone (to může představovat například další iteraci, vydání nové verze či jiný důležitý milník) a může být přiřazen několika lidem, kteří na projektu spolupracují. Je možné také jednotlivé issue komentovat a vyladit tak například požadovanou funcionalitu. Pozn.: Issues musí být pro daný repositář povolé, lze tak učinit v nastavení. ## Je možné jej propojit (integrovat) s dalšími nástroji? Github nabízí REST API (https://developer.github.com/v3/) ke všem svým službám (tj. repository, gist, issue tracker). Díky jednoduchosti RESTového API je možné tento nástroj integrovat téměř do jakéhokoli systému napsaného v jakémkoli programovacím jazyce. ## Ostatní K celému systému existuje poměrně kvalitní a rozsáhlá dokumentaci v angličtině (https://help.github.com/).