Projekt

Obecné

Profil

GitHub » Historie » Verze 10

Antonín Neumann, 2015-11-25 20:46

1 1 Antonín Neumann
h1. GitHub
2
3 9 Antonín Neumann
Pro předmět KIV/ZIM jsem založil na githubu vlastní projekt, který je možné nalézt na adrese https://github.com/tonda13/zcu.kiv.zim. Jsou zde uvedeny všechny podpůrné materiály (včetně prezentace).
4
5 1 Antonín Neumann
h2. Pro jakou cílovou skupinu je nástroj vhodný?
6
7
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ů).
8 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í.
9 1 Antonín Neumann
10
h2. Jaké má základní možnosti, funkcionality?
11
12 4 Antonín Neumann
h3. Základní možnosti použití jsou:
13 5 Antonín Neumann
14 1 Antonín Neumann
* verzovací nástroj Git
15 2 Antonín Neumann
** je možné používat i v nástrojích pro správu SVN (speciální URL)
16 1 Antonín Neumann
* issue tracker pro správu "úkolů" (obdoba systému Redmine)
17
* wiki stránky
18
* Github pages - jednoduché webové stránky (pouze HTML, CSS a javascript)
19
** existuje webový generátor
20
** nebo je možné psát ručně
21
** stránky jsou umístěné v samostatné větvi
22 9 Antonín Neumann
* "Gist":https://gist.github.com/ - nástroj pro sdílení souborů, částí souborů, úseků kódu, aplikací, atp.
23
* "Markdown":https://daringfireball.net/projects/markdown/ značkovací jazyk pro formátování textu, lze využít na wiki, readme, v komentářích, aj.
24
** Použití Markdownu a souboru readme.md jako základního prvku pro popis projektu je vidět na *Obrázku 1 bod 4*
25 1 Antonín Neumann
* GitHub Desktop pro uživatele Mac OS a Windows nabízí Github desktopovou aplikaci pro pohodlnou správu projektů.
26
* Existuje i aplikace pro Android (slouží hlavně pro přehled)
27
28
Github je v základní verzi pro všechny zdarma, v této bezplatné verzi jsou ovšem nějaká omezení:
29
1. všechny projekty jsou veřejné (tj. viditelné a stažitelné pro kohokoli)
30
2. projekty musí být uvolněny jako open source pod nějakou svobodnou licencí (např. MIT, Apache, GPL, atp.)
31 6 Antonín Neumann
32 1 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ů.
33
34 9 Antonín Neumann
!gh_repository.png!
35
Obrázek 1: _Základní pohled na repozitář, bod 1 ukazuje základní možnosti zvoleného projetku: repositář, wiki, issues, setting a statistiky_
36
37 1 Antonín Neumann
h2. Má nějaké specifické či unikátní možnosti?
38
39 9 Antonín Neumann
h3. Gist https://gist.github.com/
40 1 Antonín Neumann
41
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.
42
43 9 Antonín Neumann
Ukázky:
44
* Jeden mnou vytvořený Gist: https://gist.github.com/tonda13/2fc060f3453ee56416ab (screenshot: [[screenshot|attachment:gh_gist_preview.png]])
45
* Gist použitý na přednášce o NodeJS: https://gist.github.com/bydga/de74580cc8a042391add
46
47
48 1 Antonín Neumann
h3. Stažení celé aplikace jako ZIP archív
49
50 9 Antonín Neumann
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. (viz *Obrázek 1 bod 3*)
51 1 Antonín Neumann
52 2 Antonín Neumann
h3. Fork
53 1 Antonín Neumann
54 9 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. (viz *Obrázek 1 bod 2*)
55 1 Antonín Neumann
56 3 Antonín Neumann
57 6 Antonín Neumann
h2. Jaké typy informací/znalostí se v něm dají dobře zachytit, sdílet?
58 1 Antonín Neumann
59 2 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.
60 1 Antonín Neumann
61
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.
62
63
*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)
64
65 9 Antonín Neumann
!gh_collaborating.png!
66
Obrázek 2: _Ukázka jak přidat jiné uživatele k Vašemu repositáři._
67 1 Antonín Neumann
68 9 Antonín Neumann
h2. Jak se s ním typicky pracuje?
69 1 Antonín Neumann
70 9 Antonín Neumann
h3. Nástroj pro správu verzí
71
72 1 Antonín Neumann
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):
73 2 Antonín Neumann
<pre><code>git clone https://github.com/JMENO/NAZEV_REPO</code></pre>
74 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.
75 2 Antonín Neumann
76 9 Antonín Neumann
h3. Issue tracker
77
78 1 Antonín Neumann
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.
79
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"_. 
80 9 Antonín Neumann
81 1 Antonín Neumann
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.
82
83 10 Antonín Neumann
Zobrazit je možné buď úkoly (Issues) pro konkrétní projektnebo všechny úkoly (napříč všemi projekty), které jste vytvořili nebo jsou Vám přiřazeny (oba odkazy jsou vyznačeny na následující obrázku.
84 1 Antonín Neumann
85 9 Antonín Neumann
*Pozn.:* Issues musí být pro daný repositář povolené, lze tak učinit v nastavení. (viz Obrázek 5)
86 1 Antonín Neumann
87 9 Antonín Neumann
!gh_issues.png!
88
Obrázek 3: _Ukázka Issues v konkrétním repositáři._
89
90
h3. Wiki stránky
91
92
Wiki stránky používají ke svému formátování syntaxi Markdown, stejně jako ostatní služby. Wiki stránky jsou interně reprezentovány jako samostatný Git repositář, takže mohou být staženy do lokálního počítače. Po stažení do počítače, je každá stránka reprezentována jako samostatný soubor s koncovkou .md (značí použití Markdown syntaxe).
93
94
!gh_wiki.png!
95
Obrázek 3: _Ukázka Wiki stránky._
96
97 1 Antonín Neumann
h2. Je možné jej propojit (integrovat) s dalšími nástroji?
98
99
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.
100
101
h2. Ostatní
102
103
K celému systému existuje poměrně kvalitní a rozsáhlá dokumentaci v angličtině (https://help.github.com/).
104 9 Antonín Neumann
105
h3. Nastavení
106
107
V nastavení je možné povolit k Vašemu repositáři Wiki stránky, Issue tracker a nebo Github Pages
108
109
!gh_settings.png!
110
Obrázek 5: _Nastavení volitelných nástrojů k repositáři_
111
112
*%{color:red}POZNÁMKA KE SCREENSHOTŮM:%*
113
114
Při pořizování screenshotů pro účely doplnění této práce dne 25. 11. 2015 Github přešel na nový vzhled repositářů, tím pádem jsou screenshoty již z tohoto nového rozhraní.
115 7 Premek Brada
116
----
117
118
----
119
120
h2. Komentáře
121 8 Premek Brada
122
P.Brada
123
* stručné, hutné, užitečné informace a odkazy
124
* trochu zjednodušující ("sdílet jakékoli informace" určitě není přesné) a zejména z popisu moc není jasné, jak vlastně nějaké potřeby typu sdílení znalostí či informací konkrétně v git/GitHub realizovat (třeba skupina lidí se sdílenými dokumenty, rozvedení použití Gist pro školení, ...)
125
* chybí ukázky / screenshoty
126
* slovo "repositář" -- používejte český termín "úložiště"