V tomto příkladu si vyzkoušíme týmovou spolupráci v Gitu. Vaším úkolem bude vytvořit webovou stránku pro e-shop s pánskými obleky. Stránka má vypadat přesně dle tohoto grafického návrhu.
Pro účely všech následujících cvičení budeme pracovat ve dvoučlenných týmech. Jeden z týmu hraje roli Alice a druhý roli Barbory. Instrukce jsou vždy pro Alici nebo Barboru. Držte si kloubouky, začínáme:
Úkol pro Alici. Barbora čeká.
- Alice vytvoří na svém GitHub účtu šablonu z repozitáře cviceni-panske-obleky obsahující výchozí soubory pro stránku s pánskými obleky.
- Pozve Barboru do svého GitHub projektu jako spolupracovnici.
- Naklonuje projekt do svého počítače a otevře složku
cviceni-panske-obleky
ve VS Code. - Seznámí se se strukturou projektu a otevře si stránku v prohlížeči.
Úkol pro Barboru, Alice čeká.
- Jakmile Barbora obdrží pozvánku do projektu, naklonuje si tento projekt do svého počítače a ve VS Code otevře složku
cviceni-panske-obleky
. - Seznámí se se strukturou projektu a otevře si stránku v prohlížeči.
Na konci tohoto úkolu mají Alice i Barbora každá na svém počítači naklonovaný obsah repozitáře a mají projekt otevřený ve VS Code.
Úkol pro Barboru. Alice čeká.
- Barbora vytvoří v projektu složku
img
a do ní vloží obrázky bg.jpg a suit.jpg pro hlavičku stránky. - Otevře soubor
style.css
a přidá do něj následující styl hlavičky těsně za třídu.container
.header { padding-top: 4rem; background-image: url(img/suit.jpg), url(img/bg.jpg); background-position: center, center; background-repeat: no-repeat, repeat-x; height: 360px; }
- Pomocí
git add .
přidá do stage všechny změny a vyvoří commit se zprávou "Stylování hlavičky." - Pushne commit do vzdáleného repozitáře.
- Na GitHubu zkontroluje, že se změny opravu zapsaly na server.
Úkol pro Alici, Barbora čeká.
-
Poté, co Barbora provedla commit, Alice si pullne změny z GitHub repozítáře k sobě do počítače.
-
Pomocí
git log
zkontroluje, že si opravdu stáhla Barbořin commit. -
V projektu vytvoří složku
fonts
a vloží do ní font Fashion Victim. Na začátek souborustyle.css
tento font vloží pomocí@font-face
.@font-face { font-family: 'Fashion Victim'; src: url(fonts/fashion-victim.woff2) format('woff2'); }
-
Dále do stylů přidá stylování nadpisu stránky hned za prvek
header
.h1.site-title { font-family: 'Fashion Victim'; font-size: 6rem; font-weight: normal; text-align: center; } h1.site-title span { margin: 0 2rem; }
-
Ověři si, že se stránka správně nastylovala a že nadpis nyní vypadá přesně podle zadání.
-
Přidá do stage všechny změny a provede commit se zprávou "Stylování nadpisu." Pushne commit do vzdáleného repozitáře.
-
Na GitHubu se přesvědčí, že její kód je opravdu na serveru.
Úkol pro Barboru, Alice čeká.
- Poté, co Alice provedla commit, Barbora si pullne změny k sobě do počítače.
- Pomocí
git log
zkontroluje, že obdržela Alicin commit.
Na konci tohoto cvičení jsou obě dámy opět synchronizované a obě mají projekt ve stejném stavu se správně nastylovanou havičkou i nadpisem stránky.
V tuto chvíli se obě dámy nezávisle na sobě rozhodnou upravit stejnou část stránky.
Úkol pro Barboru. Alice čeká.
- Barbora v souboru
index.html
přidá do elementu.product__colors
následující HTML.<p>Pomocí tlačítek vyberte barvu produktu</p> <div class="colors"> <div class="color"> <div class="color-box"></div> <p class="color__name">bílá</p> </div> </div>
- Zatím neřeší stylování a změny rovnou commitne se zprávou "HTML pro výběr barvy."
- Provede push na GitHub.
Úkol pro Alici, Barbora čeká.
- Alice chce také vyrobit HTML pro výběr barvy. Nevšimne si však, že Barbora už pushnula úpravu stejné části kódu. Místo toho, aby si pullnula, vloží do elementu
.product__colors
svůj kód, který vypadá trochu jinak než ten, který vytvořila Barbora.<p>Vyberte si barvu produktu</p> <div class="choose-colors"> <div class="color-option"> <div class="color-option__box"></div> <p class="color-option__name">bílá</p> </div> </div>
- Provede commit svých změn se zprávou "Ukázka výběru barev."
- Nyní se Alice pokusí provést push svých změn. Pushnutí však selže a Alice obdrží červenou zprávu
rejected
. Git nedovolí pushnout do repozitáře obsahující změny, které si Alice ještě nepullnula. Alice tedy musí nejdříve udělat pull. - Během pullování však nastane konflikt v souboru
index.html
.Alice jej musí vyřešit. Kontaktuje Barboru a navzájem se domluví, jak konflikt vyřeší:CONFLICT (content): Merge conflict in index.html
- Buď přijmou změny, které provedla Alice (Accept Current Change),
- nebo Alice svoje změny zahodí a přijme změny od Barbory (Accept Incoming Change),
- nebo přijmou obě změny (Accept Both Changes) a nějakým způsobem je zkombinují dohromady. Pro pokračování projektu je jedno, kterou variantu si vyberete. Rozhodněte se dle svých preferencí.
- Jakmile je konflikt vyřešen, Alice pomocí
git add
přidá změny vindex.html
a provede commit se zprávou "Vyřešen konflikt.". - Nakonec Alice pushne svoje změny do GitHub repozitáře.
Úkol pro Barboru.
- Barbora si pullne nový commit, ve kterém je vyřešen konflikt. Tím se lokální repozitáře u Alice i Barbory dostanou opět do synchronizovaného stavu.
Pokračujte dále v rolích Alice a Barbory. Společně si rozvhrněte práci na projektu a dotáhněte jej tak daleko, jak se vám samotným bude líbit. Nejlepší je, pokud jeden z týmu pracuje na HTML a stylech a druhý na JavaScriptu, abyse si navzájem nelezli do zelí a nevznikaly zbytečné konflikty.
Stránka by měla fungovat tak, že si uživatel může vybírat barvu košile pomocí tlačítek s barvami. Při kliknutí na příslušné tlačíko se obrázek košile přebarví na zvolenou barvu. Díky vlastnosti style
na prvku svg
můžete pomocí JavaScriptu měnit barvu košile. Vyzkoušejte si to.
Držte se pravidel pro spolupráce na jedné větvi. Vždy dělejte pull
před tím, než uděláte commit
.
Co všechno je možné na projektu udělat:
- Dokončit HTML i CSS pro vybírání barev.
- Přidat tlačítko pro objednávání.
- Pomocí JavaScriptu zvýraznit barvu, kterou si uživatel vybral. Obarvit košili danou barvou.
- Zařídit, aby šla vybrat pouze jedna barva.
Pokud pracujete v JavaScriptu, vyberte si techniky, které znáte a ve kterých se cítíte pohodlně.