Black Friday Black Friday
Black Friday výprodej! Až 80 % extra bodů zdarma! Více informací zde

Lekce 7 - Git - GitHub Desktop

Software Git Git - GitHub Desktop

ONEbit hosting Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

V dnešní lekci o GITu si ukážeme novou aplikaci GitHub desktop, která nám umožňuje pracovat s naším kódem pomocí příjemného GUI, bez nutnosti pamatování si příkazů a používání příkazového řádku.

Dnešní lekce počítá s předešlou znalostí systému Git z minulých tutoriálů. Základy si velmi stručně popíšeme, aby byla co k čemu i lidem, co přišli z Google, hlavní zaměření lekce je ovšem na práci s grafickým rozhraním.

Vytvoření repositáře

Pro založení repositáře klikneme na File -> New repository nebo na tlačítko Create new repository.

Nyní již můžeme založit náš repositář, což je úložiště pro náš kód a vše se odvíjí od něj.

Nyní je potřeba vyplnit jméno a popis repositáře. Mělo by to být něco stručného a výstižného, co jasně popisuje, o co jde. Pro účely kurzu použiji jméno Zkouska, jak si jej pojmenujete vy je na vás.

Dále máme možnost inicializovat repositář s README souborem, licencí a gitignore. To zatím můžeme nechat nevyplněné, vše můžeme totiž přidat dodatečně.

Vytvoření nového repositáře v GIT desktop

Nyní můžeme vytvořit náš repositář. Zobrazila se nám spousta různých věcí, ke všemu se postupně dostaneme.

Nejprve klikneme na tlačítko "Publish repository", abychom nahráli naš repositář na GitHub. Je to velmi užitečné, protože nyní nebude náš kód existovat jen v našem počítači, ale bude ho moci kdokoliv a kdykoliv prohlížet, upravit a použít. To znamená, že i my můžeme takto pracovat z více počítačů a zálohovat si náš kód, kdyby nám třeba odešel disk.

Nyní klikneme na "open this repository in Explorer", což nám otevře složku s naším repositářem. Zde již můžeme vytvořit náš první soubor, nebo kliknout pravým a vybrat možnost „otevřít v“, pokud používáte IDE, které toto podporuje. Souboru .gitattributes si zatím nemusíme všímat.

Nyní můžeme vytvořit náš soubor. Napíšeme do něj nějaký kód a uložíme jej. Hned, jak otevřeme náš GitHub Desktop, vidíme, že se nám aktualizoval. Vše, co jsme do souboru napsali, se zobrazí zeleně:

Nově přidaný kód v GIT

Commit a push

Teď již můžeme naši editaci takzvaně commitnout.

Commit

Nejprve shrneme co jsme v souboru měnili.

Doporučuji neřídit se přednastaveným textem souhrnu "Update x", jelikož toto nikomu, kdo se na to v budoucnosti podívá, nic neřekne. Souhrn by měl být stručný, obsahovat jen pár slov. V tomto případě by to bylo např. "Added print statements".

Description je pro dodatečný popis našich změn. V našem případě je tento popis zbytečný, ale bude se hodit, až přidáte třeba nějakou funkci nebo třídu a budete chtít popsat, co dělá.

Nyní stačí stisknutím "Commit to master". Náš kód je "commited", ale pořád ještě není synchronizovaný s GitHubem. Dalo by se říci, že je někde v půli cesty. Proto ho potřebujeme "pushnout" (postrčit) na vzdálený server.

Push

Pushnutí dosáhneme opětovným stisknutím tlačítka, které jsme použili na upload našeho repositáře na GitHub.

Nyní je náš kód uložený na serverech GitHubu a je veřejně přístupný.

Můžeme se o tom sami přesvědčit, stačí si zobrazit svůj účet na GitHubu a uvidíme, že je tam vytvořený repositář a v něm je náš kód.

Pokud používáte Visual Studio Code, zobrazí se vám i tyto poznámky. Úplně napravo vidíte souhrn našeho commitu a také vidíte kdo a kdy tento kód napsal a commitnul, což velmi pomáhá při týmových projektech.

Commit a push kódu na GitHub

Vizuální odlišení

Zjistili jsme, že si nepřejeme mít v našem programu text "Hello World", ale chceme místo něj mít české "Ahoj světe!"

Přepíšeme tedy náš 3. řádek a znovu otevřeme aplikaci. Zde vidíme barevné odlišení, které je nám poskytnuto pro zlepšení orientace.

Kód, který zůstal nepozměněn, je bíle, smazaný kód je červeně a ten nově přidaný je zeleně. Kód zas můžeme zesumarizovat, commitnout a pushnout.

Změny v kódu v GIT desktop

Revert

Nakonec jsme se ale rozhodli, že místo "Ahoj světě" bychom přeci jen chtěli ten "Hello World". V téhle situaci bychom mohli kód jednoduše během pár vteřin přepsat, ale představte si několika tisíci řádkový kód, kde jste něco pokazili.

Teď nevíte kde a co přesně to bylo a hledání tohoto bugu by vás mohlo přijít i na hodiny.

Tak by to nešlo. Od toho tu máme možnost vrátit se zpět ve verzích.

V levém horním rohu můžete vidět záložku "History"

Historie v GitHub desktop

Zde můžeme vidět veškeré příspěvky k projektu, naše i ostatních lidí. Každý commit vytvoří svou vlastní záložku, takže můžete vrátit zpět jakoukoliv maličkost.

No a my už si jen najdeme verzi, kterou potřebujeme, klikneme pravým tlačítkem, vybereme "Revert this commit" a pokud si otevřeme naše IDE, uvidíme, že se nám program opravdu vrátil do námi zvolené verze.

Branching

Branching je rozdělení našeho kódu na různé větve, které se liší například ve verzích kódu (branche).

Pro pochopení, k čemu přesně je větvení užitečné a jeho komplexnějšího využití, viz Lekce GIT kurzu Rozděl a panuj.

Zkráceně nová větev vytvoří naprosto nové prostředí pro kód, které neovlivňuje jiné větve, je tedy mimo jiné užitečná na testování.

Ze základu máme branch master, která obsahuje všechen kód. V prostředním tlačítku vidíme tlačítko "current brach" a můžeme si založit novou větev. GitHub desktop nás do ní automaticky přepne a pokud se podíváme do editoru, vidíme, že nám všechen kód zůstal. Smažeme náš první print statement a přidáme místo něj jiný statement, který vytiskne například "nová větev". Uložíme, commitneme a pushneme.

Teď opět klikneme na tlačítko "Current branch" a přehodíme na naši defaultní větev master. Můžeme vidět, že náš přidaný print statement zde není a neovlivní naši aplikaci, která zůstává stejná jako předtím.

Merging

Testování bylo úspěšné a jsme spokojeni s výsledkem. Chceme verzi kódu z vedlejší větve použít v naší hlavní větvi. V našem případě bychom to mohli překopírovat, ale při větších projektech by to mohlo být zdlouhavé a matoucí.

Od toho tu je merging (sloučení) - dovoluje nám sloučit 2 větve dohromady.

Toho docílíme kliknutím Branch - Merge into current branch a zvolením větve, kterou chceme sloučit.

Merge větví v GitHub desktop

V další lekci si povíme o pull requestech, merge konfliktech a orientaci v repositáři jiných lidí.


 

 

Článek pro vás napsal Filip
Avatar
Jak se ti líbí článek?
7 hlasů
Autor je studentem gymnázia, ve svém volném čase se věnuje a zajímá o programování a vše kolem něj.
Miniatura
Všechny články v sekci
Git
Aktivity (3)

 

 

Komentáře

Avatar
Honza Bittner
Šupák
Avatar
Honza Bittner:31. října 13:15

Naprosto zbytečný článek, který po přečtení vlastně nic nevysvětlí. Příště bych prosil popis například Google Chrome, abych věděl, jak ho zapnout. Díky!

Odpovědět  +2 31. října 13:15
Milovník Dartu. Student FIT ČVUT. Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/...
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Honza Bittner
David Čápka:1. listopadu 13:30

Jestli sis nevšiml, tak je to 7. lekce, která dokonce na začátku píše, že je to ukázka běžných akcí v GITu na grafickém rozhraní. Jestli děláš v konzoli, tak ti to nikdo nebere, ale vážně nevím co je špatného na představení alternativního přístupu po vysvětlení toho mainstreamového a ani nevím proč to musíš tak kritizovat, nevšiml jsem si, že by tam bylo něco špatně.

Odpovědět  +3 1. listopadu 13:30
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na David Čápka
Martin Dráb:1. listopadu 13:45

Ono je to (zejména v závěru) spíš takové vágní. Pokud již je čtenář z předchozích lekcí seznámen s tím, co to třeba větve jsou, nemá moc smysl je znovu charakterizovat (a ne, to prostředí se nedá charakterizovat jako naprosto nové prostředí, neb se jedná o kopii prostředí jiného – již existujícího).

A pak ta poznámka V našem případě bychom to mohli překopírovat. Samozřejmě, to bychom mohli, ale zaděláváme si pak na solidní problémy, až se ty dvě větve rozhodneme zmergovat (pokud by ty změny tam byly složitější).

Tady by spíš bylo zajímavé se zaměřit na věci (možná v příštím díle), jak ta aplikace umí pracovat s věcmi, které v Gitu nejsou – Issues, Wiki, Projects... (nevím, zda to umí, protože si zatím vystačím s TortoiseGitem a webovým rozhraním GH).

Zbytečný ten článek není, i popis grafického rozhraní se občas hodí mít po ruce.

Editováno 1. listopadu 13:46
Odpovědět 1. listopadu 13:45
2 + 2 = 5 for extremely large values of 2
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Martin Dráb
David Čápka:1. listopadu 13:56

Vždyť tam píše, že by se to kopírovat nemělo, jen jsi vytrhl z kontextu polovinu věty. Zmínit jednou nebo dvěma větami co která fíčura dělá mi přijde fajn pro lidi, co ten článek vygooglí a ty předchozí nebudou mít přečtené. Zároveň by to nijak nemělo svou stručností obtěžovat lidi, co již kurz absolvovali. Jediné nepochopení zde je, že si Honza nevšiml, že je to 7. lekce a všichni mu to opět bezmyšlenkovitě polajkovali. V dnešní době se bohužel takto pracuje s informacemi.

Odpovědět 1. listopadu 13:56
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na David Čápka
Martin Dráb:1. listopadu 16:09

Vždyť tam píše, že by se to kopírovat nemělo, jen jsi vytrhl z kontextu
polovinu věty

Já vím. Já tam to kopírování vidím tak proti filosofii verzování, že bych tam tuto "možnost" buď neuváděl vůbec, nebo více zdůraznil, že se fakt nemá používat :-). Ale uznávám, je to dost slovíčkaření.

Zmínit jednou nebo dvěma větami co která fíčura dělá mi přijde fajn pro lidi, co ten článek vygooglí a ty předchozí nebudou mít přečtené.

Já vím a v zásadě souhlasím (jen jsem měl výhradu k těm větvím). Jinak to je v článku popsáno OK.

Odpovědět 1. listopadu 16:09
2 + 2 = 5 for extremely large values of 2
Avatar
Odpovídá na David Čápka
Martin Štěpánek :11. listopadu 11:12

Podle mě, pokud si uživatel prošel 6 lekcí o Gitu předtím, tak ho chápe dost na to, aby když se dostane k takovému toolu, není mu potřeba nic vysvětlovat. Celé to rozhraní je tak jednoduché, že podle mě není třeba psát na něj žádný návod.

Jediný smyslný článek o git nástrojích pro vizualizaci by bylo třeba nějaké jejich porovnání, které mají co, jak co kde vypadá, ale ne článek jen o jednom, který musí pochopit každý se znalostí Gitu...

Odpovědět 11. listopadu 11:12
Nesnáším, když někdo u if nepoužívá {}, byť se jedná o jeden řádek.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.