Projekt

Obecné

Profil

GitHub » Historie » Verze 6

Antonín Neumann, 2015-11-01 12:56

1 1 Antonín Neumann
h1. GitHub
2
3
h2. Pro jakou cílovou skupinu je nástroj vhodný?
4
5
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ů).
6 2 Antonín Neumann
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ícím potřebám, tedy i ke sdílení informací.
7 1 Antonín Neumann
8
h2. Jaké má základní možnosti, funkcionality?
9
10 4 Antonín Neumann
h3. Základní možnosti použití jsou:
11 5 Antonín Neumann
12 1 Antonín Neumann
* verzovací nástroj Git
13 2 Antonín Neumann
** je možné používat i v nástrojích pro správu SVN (speciální URL)
14 1 Antonín Neumann
* issue tracker pro správu "úkolů" (obdoba systému Redmine)
15
* wiki stránky
16
* Github pages - jednoduché webové stránky (pouze HTML, CSS a javascript)
17
** existuje webový generátor
18
** nebo je možné psát ručně
19
** stránky jsou umístěné v samostatné větvi
20 3 Antonín Neumann
* Gist - nástroj pro sdílení souborů, částí souborů, úseků kódu, aplikací, atp.
21 1 Antonín Neumann
* Markdown značkovací jazyk pro formátování textu, lze využít na wiki, readme, v komentářích, aj.
22
* GitHub Desktop pro uživatele Mac OS a Windows nabízí Github desktopovou aplikaci pro pohodlnou správu projektů.
23
* Existuje i aplikace pro Android (slouží hlavně pro přehled)
24
25
Github je v základní verzi pro všechny zdarma, v této bezplatné verzi jsou ovšem nějaká omezení:
26
1. všechny projekty jsou veřejné (tj. viditelné a stažitelné pro kohokoli)
27
2. projekty musí být uvolněny jako open source pod nějakou svobodnou licencí (např. MIT, Apache, GPL, atp.)
28
29 6 Antonín Neumann
*Pozn.:* Github nabízí specíální balíček pro studenty (https://education.github.com/), jeho součástí je hlavně možnost získat zdarma placený plán "Micro":https://github.com/pricing s 5 soukromými repositáři. Celý balíček obsahuje několik služeb a je nutné projít schvalovacím procesem, který může trvat až několik týdnů.
30 1 Antonín Neumann
31
h2. Má nějaké specifické či unikátní možnosti?
32
33
h3. Gist
34
35 3 Antonín Neumann
Nástroj Gist slouží pro zveřejňování částí kódu nebo souborů, skvěle využitelný 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 na rozdí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.
36 1 Antonín Neumann
37
h3. Stažení celé aplikace jako ZIP archív
38
39
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.
40
41
h3. Fork
42
43 2 Antonín Neumann
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řihlášený) a stane se z něj nezávislý nový repositář, který můžete spravovat stejně jako ostatní Vaše repositáře.
44 1 Antonín Neumann
45
46
h2. Jaké typy informací/znalostí se v něm dají dobře zachytit, sdílet?
47
48 3 Antonín Neumann
Díky spojení nástrojů jako je Git repositář, issue tracker, wiki stránky a gist je možné v tomto nástroji sdílet prakticky jakékoli informace.
49 6 Antonín Neumann
50 1 Antonín Neumann
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.
51
52 2 Antonín Neumann
*Pozn.:* Nově Github začal nabízet rozhraní pro sdílení velkých binárních souborů nazvané Git LFS(Large File Storage), které rovněž uvolnil jako open source rozšíření pro systém Git. (https://github.com/blog/2069-git-large-file-storage-v1-0)
53 1 Antonín Neumann
54
55
h2. Jak se s ním typicky pracuje (uvést 2 příklady)?
56
57 2 Antonín Neumann
* *Nástroj pro správu verzí*
58
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):
59
<pre><code>git clone https://github.com/JMENO/NAZEV_REPO</code></pre>
60 1 Antonín Neumann
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.
61
62 2 Antonín Neumann
* *Issue tracker*
63
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.
64 3 Antonín Neumann
Zde již můžete vidět vytvořené záznamy a můžete si je různě filtrovat. Je možné přidat nový pomocí tlačítka _"New issue"_. 
65
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 funkcionalitu.
66 1 Antonín Neumann
67 3 Antonín Neumann
*Pozn.:* Issues musí být pro daný repositář povolené, lze tak učinit v nastavení.
68 1 Antonín Neumann
69
70
h2. Je možné jej propojit (integrovat) s dalšími nástroji?
71
72 3 Antonín Neumann
Github nabízí REST(REpresentational State Transfer) API(Application Programming Interface) (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.
73 1 Antonín Neumann
74
h2. Ostatní
75
76
K celému systému existuje poměrně kvalitní a rozsáhlá dokumentaci v angličtině (https://help.github.com/).