GitHub — je největší webová platforma pro hostování Git repozitářů, společný vývoj a automatizaci procesů, patřící společnosti Microsoft. Poskytuje nejen ukládání kódu s kontrolou verzí, ale také kompletní sadu nástrojů pro řízení projektů: Issue Tracking, Pull Request s code review, Actions pro CI/CD a Wiki pro dokumentaci. Podle údajů GitHub, 2024, platforma čítá více než 100 milionů vývojářů a 420 milionů repozitářů.
Hlavní body
GitHub — je webová služba pro ukládání a společnou práci na Git repozitářích, založená v roce 2008 Tomem Prestonem-Wernerem, Chrisem Wanstrathem a P.J. Hyettem. V roce 2018 byla společnost koupena Microsoftem za 7,5 miliardy dolarů. Platforma poskytuje webové rozhraní pro všechny operace Git a přidává k nim sociální funkce: fork, hvězdičky, odběry, code review a vestavěný systém průběžné integrace.
Klíčový rozdíl GitHubu od konkurence — otevřený ekosystém a největší komunita vývojářů. Na GitHubu se nachází zdrojové kódy Androidu, Kubernetes, Reactu, Swifta, Kotlinu a tisíců dalších open-source projektů. To dělá z platformy nejen nástroj pro ukládání kódu, ale také sociální síť pro vývojáře: lze sledovat projekty, diskutovat o změnách a přispívat prostřednictvím pull requestu.
Podle zprávy Microsoftu (2024) projde denně přes GitHub více než 10 milionů nových Pull Requestů a počet měsíčních aktivních uživatelů přesáhl 100 milionů. Platforma podporuje více než 500 programovacích jazyků, automatické rozpoznávání jazyka podle přípony souborů a zvýrazňování syntaxe kódu.
Funkcionalita GitHubu dalece přesahuje pouhé hostování Git. Platforma nabízí: GitHub Actions — vestavěný CI/CD systém; GitHub Packages — registr balíčků a kontejnerů; GitHub Codespaces — cloudová vývojová prostředí založená na VS Code; GitHub Discussions — fórum pro komunitu; GitHub Security — Dependabot pro automatickou aktualizaci závislostí a skenování zranitelností; GitHub Copilot — AI asistenta pro psaní kódu.
Pro organizace GitHub nabízí GitHub Enterprise — podnikovou verzi s vlastním hostováním (GitHub Enterprise Server) nebo cloudovým nasazením (GitHub Enterprise Cloud). Podnikové funkce zahrnují autentizaci SAML/SSO, audit aktivit, bezpečnostní politiky repozitářů a SLA s 99,95% dostupností. Enterprise verzi používají společnosti jako Google, Apple a Airbnb.
Důležitá vlastnost GitHubu — GitHub CLI (gh), který umožňuje provádět všechny operace na platformě z příkazového řádku bez použití webového rozhraní. Pomocí gh lze vytvářet repozitáře, spravovat Issues, prohlížet Pull Requesty a spouštět Actions přímo z terminálu, což urychluje práci vývojářů zvyklých na příkazový řádek.
| Funkce | Účel | Dostupnost |
|---|---|---|
| Actions | CI/CD a automatizace | Zdarma 2000 min/měs |
| Codespaces | Cloudové IDE založené na VS Code | Placené, 60 h/měs zdarma |
| Packages | Hostování balíčků a Docker obrazů | Zdarma 500 MB |
| Dependabot | Automatická aktualizace závislostí | Zdarma pro veřejné repozitáře |
| Pages | Hostování statických webů | Zdarma |
Pull Request (PR) — je hlavní mechanismus pro provádění změn v projektu na GitHubu. Vývojář vytvoří větev se změnami, zveřejní ji na GitHubu a odešle požadavek na sloučení (Pull Request) do hlavní větve. Ostatní účastníci projektu vidí rozdíl (diff) mezi větvemi, mohou zanechávat komentáře u konkrétních řádků kódu, navrhovat změny a schvalovat nebo zamítat požadavek.
Proces code review na GitHubu je postaven kolem PR. Každý komentář je připojen ke konkrétnímu řádku diffu a může být tří typů: Comment (běžný komentář), Request Changes (vyžaduje opravy) a Approve (schválení). Po provedení změn autor aktualizuje PR novým commitem a proces review se opakuje. Když jsou všechny připomínky vyřešeny a PR je schválen, změny jsou sloučeny do cílové větve.
# Vytvoření feature větve a push
git checkout -b fix-login-bug
git add src/
git commit -m "Fix login validation error"
git push -u origin fix-login-bug
# Vytvoření PR přes CLI
gh pr create --base main --title "Fix login validation" \
--body "Fixed edge case with empty email field"
# Prohlížení a merge PR
gh pr review --approve fix-login-bug
gh pr merge --squash fix-login-bug
GitHub podporuje ochranu větví (branch protection rules): lze zakázat přímý push do main, vyžadovat povinný počet schválení před mergem, spouštět kontroly Actions a vyžadovat aktuálnost větve před sloučením. Ochrana větví se nastavuje v Settings → Branches a je povinnou praxí pro produkční projekty, která brání náhodnému vnesení nestabilního kódu do hlavní větve.
GitHub Actions — je vestavěná CI/CD platforma, která umožňuje automatizaci pracovních postupů přímo v repozitáři. Workflow je popsáno v YAML souborech umístěných v adresáři .github/workflows/. Každý workflow se skládá z jednoho nebo více jobů, které se spouštějí on runnerech — virtuálních strojích s Linuxem, Windows nebo macOS.
Actions podporuje model řízený událostmi: workflow se spouští při pushi, vytvoření PR, zveřejnění release, podle plánu nebo prostřednictvím webhooku. To umožňuje automatizaci sestavování, spouštění testů, statické analýzy kódu, publikování v obchodech s aplikacemi a nasazení na server bez účasti vývojáře. Níže je uveden příklad workflow pro Android projekt:
name: Android CI
on:
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
- name: Build with Gradle
run: ./gradlew assembleDebug
Ekosystém Actions zahrnuje více než 20 000 hotových akcí na GitHub Marketplace. Populární akce: checkout (klonování repozitáře), setup-java/setup-node/setup-python (nastavení prostředí), upload-artifact (ukládání artefaktů sestavení), cache (ukládání závislostí do mezipaměti pro zrychlení), slack-notify (odesílání oznámení do Slacku). Actions také podporuje maticové sestavování — souběžné spouštění na několika verzích OS nebo jazyků.
Issues — je vestavěný systém sledování úkolů na GitHubu. Každý Issue má název, popis, štítky (labels), přiřazené řešitele (assignees), milníky (milestones) a související Pull Requesty. Issues mohou být šablonovány — pro hlášení chyb, požadavky na funkce nebo dotazy se používají různé šablony, které se automaticky dosadí při vytváření.
GitHub Projects (dříve Projects Beta) — je nástroj pro řízení projektů založený na tabulích, podobný Jiře a Trellu. Projects podporuje vlastní pole (stav, priorita, sprint), propojení s Issues a Pull Requesty, automatizaci přesouvání karet při změně stavu úkolu a analytiku ve formě grafu spalování úkolů (burndown chart). Projects je k dispozici ve dvou režimech: Table (tabulkové zobrazení) a Board (kanbanová tabule).
Pro řízení vydání GitHub nabízí Milestones — skupiny Issue a PR spojené společným cílem s termínem. Každý milník ukazuje průběh plnění: kolik úkolů je otevřených, kolik uzavřených a zda je termín dodržován. Milníky se integrují s Releases — při zveřejnění vydání lze jej připojit k milníku a automaticky vygenerovat seznam změn v CHANGELOGu na základě uzavřených Issue.
GitHub Pages — je bezplatný hosting pro statické weby, který automaticky publikuje obsah repozitáře na adrese https://username.github.io/repository. Pages podporuje HTML, CSS, JavaScript a statické generátory: Jekyll (vestavěný), Hugo, Next.js (export) a MkDocs. Konfigurace zahrnuje výběr větve a adresáře pro publikaci a také podporu vlastní domény.
Pro technickou dokumentaci GitHub nabízí Wiki — vestavěný wiki systém, který je také uložen jako Git repozitář. Wiki podporuje Markdown a umožňuje úpravy stránek jak přes webové rozhraní, tak lokálně pomocí push do wiki repozitáře. Každá Wiki stránka má vlastní historii změn, což je vhodné pro dokumentaci API, architektury a procesů projektu.
Kombinace GitHub Pages + Jekyll — populární řešení pro weby s dokumentací. Jekyll automaticky převádí Markdown soubory na statické HTML stránky, podporuje motivy, navigaci a vyhledávání. Například dokumentace Android Developers dříve používala Jekyll na GitHub Pages, nyní — interní platformu, ale tisíce open-source projektů tuto kombinaci nadále používají pro své weby.
GitHub CLI (gh) umožňuje provádět všechny operace na platformě prostřednictvím příkazového řádku: vytváření repozitářů, správa Issues, prohlížení a schvalování Pull Requestů, spouštění Actions. Příkaz gh repo create my-project --public vytvoří vzdálený repozitář a propojí jej s lokálním a gh pr create vytvoří Pull Request z aktuální větve. CLI urychluje práci vývojářů, kteří dávají přednost terminálu před webovým rozhraním.
GitHub REST API a GraphQL API poskytují programový přístup ke všem funkcím platformy: vytváření Issue, správa uživatelů, získávání statistik a správa Actions. GraphQL API je preferováno pro složité dotazy, protože umožňuje získat pouze potřebná pole v jednom dotazu. Rate limit pro REST API — 5000 dotazů za hodinu pro autentizované uživatele. API je široce používáno pro integraci GitHubu s externími CI systémy a interními DevOps nástroji.
GitHub Gist — služba pro publikování fragmentů kódu bez vytváření plnohodnotného repozitáře. Gist podporuje zvýrazňování syntaxe, vkládání na externí weby a historii verzí. Každý Gist může být veřejný (viditelný ve vyhledávání) nebo tajný (přístupný pouze přes odkaz). Gist se používá pro rychlé sdílení konfigurací, logů a příkladů kódu v týmové komunikaci a také jako obdoba Pastebinu pro vývojáře.
Často kladené otázky
GitHub klade důraz na otevřenou komunitu a sociální funkce (forky, hvězdičky). GitLab nabízí výkonnější vestavěný CI/CD a vlastní hosting (Self-Managed) bez omezení minut Actions.
GitHub Team stojí 4 dolary na uživatele měsíčně a poskytuje neomezené soukromé repozitáře, ochranu větví a Actions (3000 minut). Bezplatný tarif je vhodný pro malé open-source projekty.
Při vytváření repozitáře zvolte Private místo Public. V soukromých repozitářích je kód viditelný pouze pro pozvané účastníky. Na bezplatném tarifu jsou soukromé repozitáře dostupné s omezením na 3 spolupracovníky.
GitHub Copilot — AI asistent založený na OpenAI Codex, který nabízí automatické doplňování kódu v reálném čase. Funguje ve VS Code, JetBrains a Neovim, podporuje všechny populární programovací jazyky.
Přejděte do Settings → Danger Zone → Delete this repository. Smazání je nevratné — všechny commity, Issues a Wiki budou smazány bez možnosti obnovení. Předem se ujistěte, že máte zálohu.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také