Co je GitHub? Verzování kódu pro nevývojáře
GitHub je webová služba, která ukládá kód softwarových projektů spolu s jejich úplnou historií. Díky tomu vidíte každou změnu, můžete vrátit chyby zpět a na stejném projektu pracovat s dalšími lidmi. Je postavený na Gitu, volně dostupném softwaru, který v čase zaznamenává snímky souborů projektu. Git je nástroj, který historii vede, a GitHub je online místo, kde se tato historie sdílí, zálohuje a probírá.
Pokud tvoříte aplikace s AI, je GitHub hlavně o dvou věcech: o vlastnictví kopie kódu mimo nástroj, ve kterém jste ho vytvořili, a o předání kódu vývojáři ve formátu, se kterým už pracuje.
Proč je to důležité při tvorbě s AI
Nástroj pro tvorbu aplikací s AI napíše a změní velké množství kódu rychle a ne každá změna je zlepšením. Verzování kódu vám pomáhá zůstat v bezpečí.
- Vrácení zpět bez obav. Každá uložená změna je snímek. Pokud AI něco rozbije, vrátíte se k poslednímu funkčnímu stavu.
- Vlastnictví. Kód ve vašem vlastním GitHub účtu zůstává vaším, i když změníte nástroj, přestanete za něj platit nebo chcete druhý názor.
- Práce s vývojáři. Téměř každý vývojář používá Git denně. Repozitář mu umožní zkontrolovat, co AI napsala, opravit to a poslat změny zpět.
- Nasazení jinde. Mnoho hostingových platforem umí nasadit aplikaci přímo z GitHub repozitáře.
Každodenní příměr: sledování změn a sdílený disk
Představte si dokument se zapnutým sledováním změn uložený na sdíleném disku.
- Git je sledování změn: každá úprava se zaznamená i s tím, kdo ji udělal, kdy a proč, a můžete se vrátit ke kterékoli verzi.
- GitHub je sdílený disk: dokument žije online, ostatní si mohou vzít kopii a je tam místo pro komentáře a schvalování.
- Větev (branch) je jako uložení kopie s názvem „koncept – nová sekce s cenami“, abyste mohli experimentovat, aniž byste sáhli na verzi, na které všichni stojí. Pokud pokus funguje, změny sloučíte zpět.
Rozdíl oproti dokumentu je v rozsahu. Aplikace má stovky souborů a Git je všechny sleduje společně, takže snímek představuje stav celého projektu najednou.
Pojmy z Gitu a GitHubu, na které narazíte
| Pojem | Prostý význam |
|---|---|
| Repozitář (repo) | Složka projektu s celou historií |
| Commit | Uložený snímek změn s krátkou zprávou, která je popisuje |
| Větev (branch) | Samostatná linie práce, aby pokusy nerušily hlavní verzi |
| main | Obvyklý název hlavní větve, tedy verze, která jde do provozu |
| Merge (sloučení) | Přenesení změn z jedné větve do druhé |
| Konflikt při sloučení | Dvě změny upravily stejné řádky a někdo musí vybrat, co ponechat |
| Clone (klonování) | Stažení úplné kopie repozitáře včetně historie |
| Push / pull | Odeslání vašich commitů na GitHub / stažení commitů ostatních |
| Pull request (PR) | Stránka na GitHubu, která navrhuje sloučení větve, a kde se změny kontrolují a probírají |
| Fork | Vaše vlastní kopie cizího repozitáře na GitHubu |
| Issue | Úkol nebo hlášení chyby připojené k repozitáři |
.gitignore | Seznam souborů, které Git nikdy nesmí zaznamenat, například tajné soubory .env a stažené závislosti |
| GitHub Actions | Automatizace běžící na GitHubu, například testy při každém pull requestu |
Dvě věci stojí za zdůraznění. Za prvé, historie v Gitu je záměrně trvalá: pokud se heslo commitne a odešle, jeho smazání v pozdějším commitu ho z historie neodstraní. Za druhé, commit je užitečný jen tolik, kolik stojí za jeho zpráva. Zpráva „Oprava dvojitého účtování rezervací, když si lidé rezervují současně“ vám pomůže později, zpráva „úprava“ ne.
Praktický příklad: předání aplikace vytvořené s AI externímu vývojáři
Pomocí AI nástroje jste vytvořili klientský portál. Funguje, ale chcete, aby externí vývojář doplnil náročné propojení s vaším účetním softwarem.
- Propojte projekt s novým soukromým GitHub repozitářem a odešlete ho. Repozitář teď obsahuje kód i jeho historii.
- Zkontrolujte, co v něm je. Otevřete repozitář na GitHubu. Neměl by v něm být žádný soubor
.envani API klíče v kódu. Tajné údaje zůstávají v nastavení vaší platformy a vývojáři je předáte zvlášť, pokud vůbec. Viz proměnné prostředí a tajné údaje. - Pozvěte vývojáře jako spolupracovníka pouze do tohoto repozitáře.
- Pracuje ve větvi s názvem něco jako
ucetnictvi-sync, průběžně dělá commity a po dokončení otevře pull request. - Vy pull request zkontrolujete. I bez čtení kódu si přečtete popis, zjistíte, které soubory se změnily, a položíte otázky v komentářích.
- Až budete spokojeni, sloučte změny a poté je stáhněte zpět do nástroje pro tvorbu, aby vy i AI pokračovali od nové verze.
Po celou dobu vidíte přesně, co se změnilo, a můžete to v případě potřeby vrátit. V tom spočívá celá hodnota verzování v jednom pracovním postupu. Pokud zvažujete, zda vůbec přizvat vývojáře, viz najmout vývojáře, nebo stavět s AI.
Časté chyby a omyly
- „GitHub a Git jsou totéž.“ Git funguje i bez GitHubu. Také GitLab a Bitbucket hostují Git repozitáře.
- „GitHub spustí moji aplikaci.“ GitHub ukládá kód. Spouštění pro veřejnost je webhosting, což je samostatná služba, i když některé hostingy nasazují přímo z GitHubu.
- Nahrávání tajných údajů. Nejničivější a nejčastější chyba. Soubory
.envvyřaďte přes.gitignorea každý klíč, který se kdy odeslal, okamžitě vyměňte. - Jedna větev a žádné zprávy. Pro samostatné pokusy to stačí, ale commitům dejte jasné zprávy a pro rizikové věci používejte větve.
- Úpravy na dvou místech najednou. Pokud měníte kód na GitHubu i v AI nástroji bez stažení změn, vytvoříte konflikty. Upravujte vždy na jednom místě a před přepnutím se synchronizujte.
- Myšlenka, že soukromý repozitář je zálohou všeho. Obsahuje kód, nikoli obsah databáze ani nahrané soubory. Ty potřebují vlastní zálohy.
Co požádat svůj AI nástroj
- „Přidej
.gitignore, který vyloučí.env, složky se závislostmi a výstup sestavení.“ - „Napiš README, které vysvětlí instalaci, potřebné proměnné prostředí (jen názvy) a spuštění aplikace.“
- „Přidej
.env.examplese všemi názvy proměnných a bez skutečných hodnot.“ - „U každé změny používej jasné a výstižné zprávy commitů.“
Těchto čtyři požadavky vytvoří repozitář, do kterého se vývojář dostane během několika minut. Pokud chcete aplikaci přenést na vlastní servery, viz jak exportovat a provozovat vlastní hosting AI aplikace. Pro zpevnění před prvními uživateli viz jak dostat AI prototyp do provozu.
GitHub a Mythex
Mythex ukládá historii za vás na každém tarifu: po každém úspěšném kroku agenta uloží checkpoint, což je snímek v Gitu, ke kterému se můžete vrátit. Na tarifu Pro můžete propojit GitHub a odesílat nebo stahovat projekt do svého vlastního repozitáře, nebo stáhnout celý projekt jako archiv. Tajné údaje a nainstalované závislosti se z exportů vynechávají. GitHub zde slouží k synchronizaci kódu, ne k přihlášení do Mythexu. Viz GitHub, export a import v dokumentaci a cenovou stránku, kde najdete, co každý tarif zahrnuje.
Otázky
Jaký je rozdíl mezi Gitem a GitHubem?
Git je volně dostupný software, který zaznamenává historii souborů projektu na libovolném počítači. GitHub je webová služba, kterou vlastní Microsoft, hostuje Git repozitáře online a přidává nástroje pro spolupráci, jako jsou pull requesty, úkoly (issues) a automatizace.
Potřebuji GitHub, abych s AI vytvořil aplikaci?
Ne. Mnoho AI nástrojů pro tvorbu aplikací ukládá historii změn přímo ve svém prostředí. GitHub se hodí, když chcete mít vlastní kopii kódu, když chcete spolupracovat s vývojářem nebo když plánujete aplikaci hostovat jinde.
Je GitHub zdarma?
GitHub má bezplatný tarif, který zahrnuje veřejné i soukromé repozitáře. Pro většinu jednotlivců a malých týmů to stačí. Placené tarify přidávají správu týmu a další funkce. Aktuální podmínky najdete na cenové stránce GitHubu.
Je můj kód na GitHubu veřejný?
Jen pokud repozitář nastavíte jako veřejný. Soukromé repozitáře vidíte jen vy a lidé, které pozvete. Ani v soukromém repozitáři však nikdy nenahrávejte hesla ani API klíče.