GIT hands-on Mgr. Šimon Tóth 12. dubna 2012 () GIT hands-on 12. dubna 2012 1 / 25
Úvod Obsah přednášky O čem to nebude porovnání svn, cvs vs. git velmi pokročilé vlastnosti () GIT hands-on 12. dubna 2012 2 / 25
Úvod Obsah přednášky Doporučené čtení man git http://book.git-scm.com http://progit.org/book () GIT hands-on 12. dubna 2012 3 / 25
Úvod GIT Technologie na pozadí SHA1 identifikátory comitů deduplication rychlé vyhledávání unikátní identifikace detekce chyb tři typy objektů blob blok dat tree reference na jiné stromy a bloby 1 commit odkazuje na specifický strom + meta informace tag odkazuje na specifický strom 1 strom nemůže být prázdný () GIT hands-on 12. dubna 2012 4 / 25
Úvod GIT Ukládání dat každý comit referencuje celý strom silná dependence na deduplikaci pomocí SHA1 () GIT hands-on 12. dubna 2012 5 / 25
Úvod Distribuované VCS Centralizovaný VCS checkout soubor versiondb version 3 PC 2 version 2 checkout soubor version 1 PC 1 Server () GIT hands-on 12. dubna 2012 6 / 25
Úvod Distribuované VCS Decentralizovaný VCS checkout soubor versiondb checkout soubor version 3 version 3 version 3 version 2 version 2 version 2 version 1 version 1 version 1 versiondb versiondb PC 1 Server PC 2 () GIT hands-on 12. dubna 2012 7 / 25
Úvod Distribuované VCS Výhody a nevýhody + lokální operace náročnost na diskový prostor ± nevynucuje specifický workflow ± je to jiné () GIT hands-on 12. dubna 2012 8 / 25
Praktický GIT Lehký úvod Staging area working directory git add stage directory git commit repository () GIT hands-on 12. dubna 2012 9 / 25
Praktický GIT Lehký úvod Demo č.1 Základní práce s repozitářem Počáteční nastavení První commit a stage area Undo, mazání souborů a detekce přejmenování Interaktivní git add Git ignore () GIT hands-on 12. dubna 2012 10 / 25
Větve Základní práce Větvě a git vytvoření větve je velmi levná operace lokální operace přepínání je rozumně rychlé u mergování je snaha automatizovat () GIT hands-on 12. dubna 2012 11 / 25
Větve Základní práce Demo č.2 Větve Vytvoření větve Merge () GIT hands-on 12. dubna 2012 12 / 25
Větve Cherry pick Cherry pick vyzobávání comitů vhodné například pro backport bugfixů () GIT hands-on 12. dubna 2012 13 / 25
Větve Cherry pick Demo č.3 Alternativní práce s větvemi Cherry pick () GIT hands-on 12. dubna 2012 14 / 25
Větve x 3 x 2 x 1 () GIT hands-on 12. dubna 2012 15 / 25
Větve y 2 y 1 x 3 x 2 x 1 () GIT hands-on 12. dubna 2012 15 / 25
Větve x 5 y 2 x 4 y 1 x 3 x 2 x 1 () GIT hands-on 12. dubna 2012 15 / 25
Větve m 1 x 5 y 2 x 4 y 1 x 3 x 2 x 1 () GIT hands-on 12. dubna 2012 15 / 25
Větve y 2 y 1 x 5 y 2 x 4 y 1 x 3 x 2 x 1 () GIT hands-on 12. dubna 2012 15 / 25
Větve přepisuje historii umožňuje zachovat lineární větve interaktivní rebase pro hluboké změny () GIT hands-on 12. dubna 2012 16 / 25
Větve Demo č.4 Alternativní práce s větvemi Přesnější rebase Interaktivní rebase () GIT hands-on 12. dubna 2012 17 / 25
Větve příprava patche/pull requestu lokální úklid dlouhodobý vývoj vůči upstreamu developer / integrator workflow () GIT hands-on 12. dubna 2012 18 / 25
Remotes Zveřejnění repozitáře Zveřejnění repozitáře nebudeme probírat serverový SW přímo podporované protokoly: local git http(s) ssh () GIT hands-on 12. dubna 2012 19 / 25
Remotes Zveřejnění repozitáře Workflow git nevynucuje workflow workflow je vhodné zvolit podle způsobu použití vhodný i pro velmi agilní metody () GIT hands-on 12. dubna 2012 20 / 25
Remotes Zveřejnění repozitáře Základní workflow veřejný repozitář git pull privátní repozitář git push git push privátní repozitář git pull veřejný repozitář Dev 1 Dev 2 () GIT hands-on 12. dubna 2012 21 / 25
Remotes Zveřejnění repozitáře Integrační workflow Integrace veřejný repozitář release repozitář veřejný repozitář git push privátní repozitář git pull git pull git push integrační repozitář git pull git pull git push privátní repozitář Dev 1 Dev 2 () GIT hands-on 12. dubna 2012 22 / 25
Remotes Zveřejnění repozitáře Demo č.5 Veřejný repozitář Bare repozitář Remotes Tracking Reseting () GIT hands-on 12. dubna 2012 23 / 25
Remotes Zveřejnění repozitáře Hooks git podporuje širokou škálu hooks skripty, které se spustí před/po každém commitu nebo jiné akci () GIT hands-on 12. dubna 2012 24 / 25
Git nástroje Údržba Demo č.6 Nástroje Údržba Speciální příkazy () GIT hands-on 12. dubna 2012 25 / 25